xref: /llvm-project/llvm/test/Transforms/MergeFunc/initializes-attr.ll (revision 9a24f2198ec02960c9e9afedace96ba6afa9c5b1)
1*9a24f219SNikita Popov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2*9a24f219SNikita Popov; RUN: opt -S -passes=mergefunc < %s | FileCheck %s
3*9a24f219SNikita Popov
4*9a24f219SNikita Popovdefine internal void @test1(ptr initializes((0, 1)) %p) {
5*9a24f219SNikita Popov; CHECK-LABEL: define internal void @test1(
6*9a24f219SNikita Popov; CHECK-SAME: ptr initializes((0, 1)) [[P:%.*]]) {
7*9a24f219SNikita Popov; CHECK-NEXT:    store i16 0, ptr [[P]], align 2
8*9a24f219SNikita Popov; CHECK-NEXT:    ret void
9*9a24f219SNikita Popov;
10*9a24f219SNikita Popov  store i16 0, ptr %p
11*9a24f219SNikita Popov  ret void
12*9a24f219SNikita Popov}
13*9a24f219SNikita Popov
14*9a24f219SNikita Popovdefine internal void @test2(ptr initializes((0, 1)) %p) {
15*9a24f219SNikita Popov  store i16 0, ptr %p
16*9a24f219SNikita Popov  ret void
17*9a24f219SNikita Popov}
18*9a24f219SNikita Popov
19*9a24f219SNikita Popovdefine internal void @test3(ptr initializes((0, 2)) %p) {
20*9a24f219SNikita Popov; CHECK-LABEL: define internal void @test3(
21*9a24f219SNikita Popov; CHECK-SAME: ptr initializes((0, 2)) [[P:%.*]]) {
22*9a24f219SNikita Popov; CHECK-NEXT:    store i16 0, ptr [[P]], align 2
23*9a24f219SNikita Popov; CHECK-NEXT:    ret void
24*9a24f219SNikita Popov;
25*9a24f219SNikita Popov  store i16 0, ptr %p
26*9a24f219SNikita Popov  ret void
27*9a24f219SNikita Popov}
28*9a24f219SNikita Popov
29*9a24f219SNikita Popovdefine internal void @test4(ptr initializes((0, 1), (2, 3)) %p) {
30*9a24f219SNikita Popov; CHECK-LABEL: define internal void @test4(
31*9a24f219SNikita Popov; CHECK-SAME: ptr initializes((0, 1), (2, 3)) [[P:%.*]]) {
32*9a24f219SNikita Popov; CHECK-NEXT:    store i16 0, ptr [[P]], align 2
33*9a24f219SNikita Popov; CHECK-NEXT:    ret void
34*9a24f219SNikita Popov;
35*9a24f219SNikita Popov  store i16 0, ptr %p
36*9a24f219SNikita Popov  ret void
37*9a24f219SNikita Popov}
38*9a24f219SNikita Popov
39*9a24f219SNikita Popovdefine void @do_calls(ptr %p) {
40*9a24f219SNikita Popov; CHECK-LABEL: define void @do_calls(
41*9a24f219SNikita Popov; CHECK-SAME: ptr [[P:%.*]]) {
42*9a24f219SNikita Popov; CHECK-NEXT:    call void @test1(ptr [[P]])
43*9a24f219SNikita Popov; CHECK-NEXT:    call void @test1(ptr [[P]])
44*9a24f219SNikita Popov; CHECK-NEXT:    call void @test3(ptr [[P]])
45*9a24f219SNikita Popov; CHECK-NEXT:    call void @test4(ptr [[P]])
46*9a24f219SNikita Popov; CHECK-NEXT:    ret void
47*9a24f219SNikita Popov;
48*9a24f219SNikita Popov  call void @test1(ptr %p)
49*9a24f219SNikita Popov  call void @test2(ptr %p)
50*9a24f219SNikita Popov  call void @test3(ptr %p)
51*9a24f219SNikita Popov  call void @test4(ptr %p)
52*9a24f219SNikita Popov  ret void
53*9a24f219SNikita Popov}
54