llvm.org GIT mirror llvm / b15f0ae
[SystemZ] Test case formatting fixes Fix systematically wrong whitespace from a prior automated change. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337542 91177308-0d34-0410-b5e6-96231b3b80d8 Ulrich Weigand 1 year, 8 months ago
215 changed file(s) with 2883 addition(s) and 2883 deletion(s). Raw diff Collapse all Expand all
99 ; CHECK: br %r14
1010 %add = add i64 %addr, %index
1111 %ptr = inttoptr i64 %add to i8 *
12 %a = load volatile i8 , i8 *%ptr
12 %a = load volatile i8, i8 *%ptr
1313 ret void
1414 }
1515
2121 %add1 = add i64 %addr, %index
2222 %add2 = add i64 %add1, 100
2323 %ptr = inttoptr i64 %add2 to i8 *
24 %a = load volatile i8 , i8 *%ptr
24 %a = load volatile i8, i8 *%ptr
2525 ret void
2626 }
2727
3333 %add1 = add i64 %addr, 100
3434 %add2 = add i64 %add1, %index
3535 %ptr = inttoptr i64 %add2 to i8 *
36 %a = load volatile i8 , i8 *%ptr
36 %a = load volatile i8, i8 *%ptr
3737 ret void
3838 }
3939
4545 %add1 = add i64 %addr, %index
4646 %add2 = sub i64 %add1, 100
4747 %ptr = inttoptr i64 %add2 to i8 *
48 %a = load volatile i8 , i8 *%ptr
48 %a = load volatile i8, i8 *%ptr
4949 ret void
5050 }
5151
5757 %add1 = sub i64 %addr, 100
5858 %add2 = add i64 %add1, %index
5959 %ptr = inttoptr i64 %add2 to i8 *
60 %a = load volatile i8 , i8 *%ptr
60 %a = load volatile i8, i8 *%ptr
6161 ret void
6262 }
6363
7171 %or = or i64 %aligned, 6
7272 %add = add i64 %or, %index
7373 %ptr = inttoptr i64 %add to i8 *
74 %a = load volatile i8 , i8 *%ptr
74 %a = load volatile i8, i8 *%ptr
7575 ret void
7676 }
7777
8484 %or = or i64 %addr, 6
8585 %add = add i64 %or, %index
8686 %ptr = inttoptr i64 %add to i8 *
87 %a = load volatile i8 , i8 *%ptr
87 %a = load volatile i8, i8 *%ptr
8888 ret void
8989 }
9090
101101 %add = add i64 %aligned, %index
102102 %or = or i64 %add, 6
103103 %ptr = inttoptr i64 %or to i8 *
104 %a = load volatile i8 , i8 *%ptr
104 %a = load volatile i8, i8 *%ptr
105105 ret void
106106 }
1010 ; CHECK: br %r14
1111 %add = add i64 %addr, %index
1212 %ptr = inttoptr i64 %add to i8 *
13 %a = load volatile i8 , i8 *%ptr
13 %a = load volatile i8, i8 *%ptr
1414 store volatile i8 *%ptr, i8 **%dst
1515 ret void
1616 }
2323 %add1 = add i64 %addr, %index
2424 %add2 = add i64 %add1, 100
2525 %ptr = inttoptr i64 %add2 to i8 *
26 %a = load volatile i8 , i8 *%ptr
26 %a = load volatile i8, i8 *%ptr
2727 store volatile i8 *%ptr, i8 **%dst
2828 ret void
2929 }
3636 %add1 = add i64 %addr, 100
3737 %add2 = add i64 %add1, %index
3838 %ptr = inttoptr i64 %add2 to i8 *
39 %a = load volatile i8 , i8 *%ptr
39 %a = load volatile i8, i8 *%ptr
4040 store volatile i8 *%ptr, i8 **%dst
4141 ret void
4242 }
4949 %add1 = add i64 %addr, %index
5050 %add2 = sub i64 %add1, 100
5151 %ptr = inttoptr i64 %add2 to i8 *
52 %a = load volatile i8 , i8 *%ptr
52 %a = load volatile i8, i8 *%ptr
5353 store volatile i8 *%ptr, i8 **%dst
5454 ret void
5555 }
6262 %add1 = sub i64 %addr, 100
6363 %add2 = add i64 %add1, %index
6464 %ptr = inttoptr i64 %add2 to i8 *
65 %a = load volatile i8 , i8 *%ptr
65 %a = load volatile i8, i8 *%ptr
6666 store volatile i8 *%ptr, i8 **%dst
6767 ret void
6868 }
7777 %or = or i64 %aligned, 6
7878 %add = add i64 %or, %index
7979 %ptr = inttoptr i64 %add to i8 *
80 %a = load volatile i8 , i8 *%ptr
80 %a = load volatile i8, i8 *%ptr
8181 store volatile i8 *%ptr, i8 **%dst
8282 ret void
8383 }
9191 %or = or i64 %addr, 6
9292 %add = add i64 %or, %index
9393 %ptr = inttoptr i64 %add to i8 *
94 %a = load volatile i8 , i8 *%ptr
94 %a = load volatile i8, i8 *%ptr
9595 store volatile i8 *%ptr, i8 **%dst
9696 ret void
9797 }
109109 %add = add i64 %aligned, %index
110110 %or = or i64 %add, 6
111111 %ptr = inttoptr i64 %or to i8 *
112 %a = load volatile i8 , i8 *%ptr
112 %a = load volatile i8, i8 *%ptr
113113 store volatile i8 *%ptr, i8 **%dst
114114 ret void
115115 }
66 ; CHECK: lb %r0, 0
77 ; CHECK: br %r14
88 %ptr = inttoptr i64 0 to i8 *
9 %val = load volatile i8 , i8 *%ptr
9 %val = load volatile i8, i8 *%ptr
1010 ret void
1111 }
1212
1515 ; CHECK: lb %r0, -524288
1616 ; CHECK: br %r14
1717 %ptr = inttoptr i64 -524288 to i8 *
18 %val = load volatile i8 , i8 *%ptr
18 %val = load volatile i8, i8 *%ptr
1919 ret void
2020 }
2121
2424 ; CHECK-NOT: lb %r0, -524289
2525 ; CHECK: br %r14
2626 %ptr = inttoptr i64 -524289 to i8 *
27 %val = load volatile i8 , i8 *%ptr
27 %val = load volatile i8, i8 *%ptr
2828 ret void
2929 }
3030
3333 ; CHECK: lb %r0, 524287
3434 ; CHECK: br %r14
3535 %ptr = inttoptr i64 524287 to i8 *
36 %val = load volatile i8 , i8 *%ptr
36 %val = load volatile i8, i8 *%ptr
3737 ret void
3838 }
3939
4242 ; CHECK-NOT: lb %r0, 524288
4343 ; CHECK: br %r14
4444 %ptr = inttoptr i64 524288 to i8 *
45 %val = load volatile i8 , i8 *%ptr
45 %val = load volatile i8, i8 *%ptr
4646 ret void
4747 }
66 ; CHECK-LABEL: f1:
77 ; CHECK-NOT: %r15
88 ; CHECK: br %r14
9 %val = load <16 x i32> , <16 x i32> *%src1, !tbaa !1
9 %val = load <16 x i32>, <16 x i32> *%src1, !tbaa !1
1010 %add = add <16 x i32> %val, %val
1111 %res = bitcast <16 x i32> %add to <16 x float>
1212 store <16 x float> %res, <16 x float> *%dest, !tbaa !2
1818 ; CHECK-LABEL: f2:
1919 ; CHECK: n %r2, 0(%r3)
2020 ; CHECK: br %r14
21 %b = load i32 , i32 *%src
21 %b = load i32, i32 *%src
2222 %and = and i32 %a, %b
2323 ret i32 %and
2424 }
2929 ; CHECK: n %r2, 4092(%r3)
3030 ; CHECK: br %r14
3131 %ptr = getelementptr i32, i32 *%src, i64 1023
32 %b = load i32 , i32 *%ptr
32 %b = load i32, i32 *%ptr
3333 %and = and i32 %a, %b
3434 ret i32 %and
3535 }
4040 ; CHECK: ny %r2, 4096(%r3)
4141 ; CHECK: br %r14
4242 %ptr = getelementptr i32, i32 *%src, i64 1024
43 %b = load i32 , i32 *%ptr
43 %b = load i32, i32 *%ptr
4444 %and = and i32 %a, %b
4545 ret i32 %and
4646 }
5151 ; CHECK: ny %r2, 524284(%r3)
5252 ; CHECK: br %r14
5353 %ptr = getelementptr i32, i32 *%src, i64 131071
54 %b = load i32 , i32 *%ptr
54 %b = load i32, i32 *%ptr
5555 %and = and i32 %a, %b
5656 ret i32 %and
5757 }
6464 ; CHECK: n %r2, 0(%r3)
6565 ; CHECK: br %r14
6666 %ptr = getelementptr i32, i32 *%src, i64 131072
67 %b = load i32 , i32 *%ptr
67 %b = load i32, i32 *%ptr
6868 %and = and i32 %a, %b
6969 ret i32 %and
7070 }
7575 ; CHECK: ny %r2, -4(%r3)
7676 ; CHECK: br %r14
7777 %ptr = getelementptr i32, i32 *%src, i64 -1
78 %b = load i32 , i32 *%ptr
78 %b = load i32, i32 *%ptr
7979 %and = and i32 %a, %b
8080 ret i32 %and
8181 }
8686 ; CHECK: ny %r2, -524288(%r3)
8787 ; CHECK: br %r14
8888 %ptr = getelementptr i32, i32 *%src, i64 -131072
89 %b = load i32 , i32 *%ptr
89 %b = load i32, i32 *%ptr
9090 %and = and i32 %a, %b
9191 ret i32 %and
9292 }
9999 ; CHECK: n %r2, 0(%r3)
100100 ; CHECK: br %r14
101101 %ptr = getelementptr i32, i32 *%src, i64 -131073
102 %b = load i32 , i32 *%ptr
102 %b = load i32, i32 *%ptr
103103 %and = and i32 %a, %b
104104 ret i32 %and
105105 }
112112 %add1 = add i64 %src, %index
113113 %add2 = add i64 %add1, 4092
114114 %ptr = inttoptr i64 %add2 to i32 *
115 %b = load i32 , i32 *%ptr
115 %b = load i32, i32 *%ptr
116116 %and = and i32 %a, %b
117117 ret i32 %and
118118 }
125125 %add1 = add i64 %src, %index
126126 %add2 = add i64 %add1, 4096
127127 %ptr = inttoptr i64 %add2 to i32 *
128 %b = load i32 , i32 *%ptr
128 %b = load i32, i32 *%ptr
129129 %and = and i32 %a, %b
130130 ret i32 %and
131131 }
146146 %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
147147 %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
148148
149 %val0 = load i32 , i32 *%ptr0
150 %val1 = load i32 , i32 *%ptr1
151 %val2 = load i32 , i32 *%ptr2
152 %val3 = load i32 , i32 *%ptr3
153 %val4 = load i32 , i32 *%ptr4
154 %val5 = load i32 , i32 *%ptr5
155 %val6 = load i32 , i32 *%ptr6
156 %val7 = load i32 , i32 *%ptr7
157 %val8 = load i32 , i32 *%ptr8
158 %val9 = load i32 , i32 *%ptr9
149 %val0 = load i32, i32 *%ptr0
150 %val1 = load i32, i32 *%ptr1
151 %val2 = load i32, i32 *%ptr2
152 %val3 = load i32, i32 *%ptr3
153 %val4 = load i32, i32 *%ptr4
154 %val5 = load i32, i32 *%ptr5
155 %val6 = load i32, i32 *%ptr6
156 %val7 = load i32, i32 *%ptr7
157 %val8 = load i32, i32 *%ptr8
158 %val9 = load i32, i32 *%ptr9
159159
160160 %ret = call i32 @foo()
161161
1818 ; CHECK-LABEL: f2:
1919 ; CHECK: ng %r2, 0(%r3)
2020 ; CHECK: br %r14
21 %b = load i64 , i64 *%src
21 %b = load i64, i64 *%src
2222 %and = and i64 %a, %b
2323 ret i64 %and
2424 }
2929 ; CHECK: ng %r2, 524280(%r3)
3030 ; CHECK: br %r14
3131 %ptr = getelementptr i64, i64 *%src, i64 65535
32 %b = load i64 , i64 *%ptr
32 %b = load i64, i64 *%ptr
3333 %and = and i64 %a, %b
3434 ret i64 %and
3535 }
4242 ; CHECK: ng %r2, 0(%r3)
4343 ; CHECK: br %r14
4444 %ptr = getelementptr i64, i64 *%src, i64 65536
45 %b = load i64 , i64 *%ptr
45 %b = load i64, i64 *%ptr
4646 %and = and i64 %a, %b
4747 ret i64 %and
4848 }
5353 ; CHECK: ng %r2, -8(%r3)
5454 ; CHECK: br %r14
5555 %ptr = getelementptr i64, i64 *%src, i64 -1
56 %b = load i64 , i64 *%ptr
56 %b = load i64, i64 *%ptr
5757 %and = and i64 %a, %b
5858 ret i64 %and
5959 }
6464 ; CHECK: ng %r2, -524288(%r3)
6565 ; CHECK: br %r14
6666 %ptr = getelementptr i64, i64 *%src, i64 -65536
67 %b = load i64 , i64 *%ptr
67 %b = load i64, i64 *%ptr
6868 %and = and i64 %a, %b
6969 ret i64 %and
7070 }
7777 ; CHECK: ng %r2, 0(%r3)
7878 ; CHECK: br %r14
7979 %ptr = getelementptr i64, i64 *%src, i64 -65537
80 %b = load i64 , i64 *%ptr
80 %b = load i64, i64 *%ptr
8181 %and = and i64 %a, %b
8282 ret i64 %and
8383 }
9090 %add1 = add i64 %src, %index
9191 %add2 = add i64 %add1, 524280
9292 %ptr = inttoptr i64 %add2 to i64 *
93 %b = load i64 , i64 *%ptr
93 %b = load i64, i64 *%ptr
9494 %and = and i64 %a, %b
9595 ret i64 %and
9696 }
111111 %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
112112 %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
113113
114 %val0 = load i64 , i64 *%ptr0
115 %val1 = load i64 , i64 *%ptr1
116 %val2 = load i64 , i64 *%ptr2
117 %val3 = load i64 , i64 *%ptr3
118 %val4 = load i64 , i64 *%ptr4
119 %val5 = load i64 , i64 *%ptr5
120 %val6 = load i64 , i64 *%ptr6
121 %val7 = load i64 , i64 *%ptr7
122 %val8 = load i64 , i64 *%ptr8
123 %val9 = load i64 , i64 *%ptr9
114 %val0 = load i64, i64 *%ptr0
115 %val1 = load i64, i64 *%ptr1
116 %val2 = load i64, i64 *%ptr2
117 %val3 = load i64, i64 *%ptr3
118 %val4 = load i64, i64 *%ptr4
119 %val5 = load i64, i64 *%ptr5
120 %val6 = load i64, i64 *%ptr6
121 %val7 = load i64, i64 *%ptr7
122 %val8 = load i64, i64 *%ptr8
123 %val9 = load i64, i64 *%ptr9
124124
125125 %ret = call i64 @foo()
126126
66 ; CHECK-LABEL: f1:
77 ; CHECK: ni 0(%r2), 1
88 ; CHECK: br %r14
9 %val = load i8 , i8 *%ptr
9 %val = load i8, i8 *%ptr
1010 %and = and i8 %val, -255
1111 store i8 %and, i8 *%ptr
1212 ret void
1717 ; CHECK-LABEL: f2:
1818 ; CHECK: ni 0(%r2), 254
1919 ; CHECK: br %r14
20 %val = load i8 , i8 *%ptr
20 %val = load i8, i8 *%ptr
2121 %and = and i8 %val, -2
2222 store i8 %and, i8 *%ptr
2323 ret void
2828 ; CHECK-LABEL: f3:
2929 ; CHECK: ni 0(%r2), 1
3030 ; CHECK: br %r14
31 %val = load i8 , i8 *%ptr
31 %val = load i8, i8 *%ptr
3232 %and = and i8 %val, 1
3333 store i8 %and, i8 *%ptr
3434 ret void
3939 ; CHECK-LABEL: f4:
4040 ; CHECK: ni 0(%r2), 254
4141 ; CHECK: br %r14
42 %val = load i8 , i8 *%ptr
42 %val = load i8, i8 *%ptr
4343 %and = and i8 %val, 254
4444 store i8 %and, i8 *%ptr
4545 ret void
5151 ; CHECK: ni 4095(%r2), 127
5252 ; CHECK: br %r14
5353 %ptr = getelementptr i8, i8 *%src, i64 4095
54 %val = load i8 , i8 *%ptr
54 %val = load i8, i8 *%ptr
5555 %and = and i8 %val, 127
5656 store i8 %and, i8 *%ptr
5757 ret void
6363 ; CHECK: niy 4096(%r2), 127
6464 ; CHECK: br %r14
6565 %ptr = getelementptr i8, i8 *%src, i64 4096
66 %val = load i8 , i8 *%ptr
66 %val = load i8, i8 *%ptr
6767 %and = and i8 %val, 127
6868 store i8 %and, i8 *%ptr
6969 ret void
7575 ; CHECK: niy 524287(%r2), 127
7676 ; CHECK: br %r14
7777 %ptr = getelementptr i8, i8 *%src, i64 524287
78 %val = load i8 , i8 *%ptr
78 %val = load i8, i8 *%ptr
7979 %and = and i8 %val, 127
8080 store i8 %and, i8 *%ptr
8181 ret void
8989 ; CHECK: ni 0(%r2), 127
9090 ; CHECK: br %r14
9191 %ptr = getelementptr i8, i8 *%src, i64 524288
92 %val = load i8 , i8 *%ptr
92 %val = load i8, i8 *%ptr
9393 %and = and i8 %val, 127
9494 store i8 %and, i8 *%ptr
9595 ret void
101101 ; CHECK: niy -1(%r2), 127
102102 ; CHECK: br %r14
103103 %ptr = getelementptr i8, i8 *%src, i64 -1
104 %val = load i8 , i8 *%ptr
104 %val = load i8, i8 *%ptr
105105 %and = and i8 %val, 127
106106 store i8 %and, i8 *%ptr
107107 ret void
113113 ; CHECK: niy -524288(%r2), 127
114114 ; CHECK: br %r14
115115 %ptr = getelementptr i8, i8 *%src, i64 -524288
116 %val = load i8 , i8 *%ptr
116 %val = load i8, i8 *%ptr
117117 %and = and i8 %val, 127
118118 store i8 %and, i8 *%ptr
119119 ret void
127127 ; CHECK: ni 0(%r2), 127
128128 ; CHECK: br %r14
129129 %ptr = getelementptr i8, i8 *%src, i64 -524289
130 %val = load i8 , i8 *%ptr
130 %val = load i8, i8 *%ptr
131131 %and = and i8 %val, 127
132132 store i8 %and, i8 *%ptr
133133 ret void
142142 %add1 = add i64 %src, %index
143143 %add2 = add i64 %add1, 4095
144144 %ptr = inttoptr i64 %add2 to i8 *
145 %val = load i8 , i8 *%ptr
145 %val = load i8, i8 *%ptr
146146 %and = and i8 %val, 127
147147 store i8 %and, i8 *%ptr
148148 ret void
157157 %add1 = add i64 %src, %index
158158 %add2 = add i64 %add1, 4096
159159 %ptr = inttoptr i64 %add2 to i8 *
160 %val = load i8 , i8 *%ptr
160 %val = load i8, i8 *%ptr
161161 %and = and i8 %val, 127
162162 store i8 %and, i8 *%ptr
163163 ret void
77 ; CHECK-LABEL: f1:
88 ; CHECK: ni 0(%r2), 254
99 ; CHECK: br %r14
10 %val = load i8 , i8 *%ptr
10 %val = load i8, i8 *%ptr
1111 %ext = zext i8 %val to i32
1212 %and = and i32 %ext, -2
1313 %trunc = trunc i32 %and to i8
2020 ; CHECK-LABEL: f2:
2121 ; CHECK: ni 0(%r2), 254
2222 ; CHECK: br %r14
23 %val = load i8 , i8 *%ptr
23 %val = load i8, i8 *%ptr
2424 %ext = zext i8 %val to i64
2525 %and = and i64 %ext, -2
2626 %trunc = trunc i64 %and to i8
3333 ; CHECK-LABEL: f3:
3434 ; CHECK: ni 0(%r2), 254
3535 ; CHECK: br %r14
36 %val = load i8 , i8 *%ptr
36 %val = load i8, i8 *%ptr
3737 %ext = zext i8 %val to i32
3838 %and = and i32 %ext, 254
3939 %trunc = trunc i32 %and to i8
4646 ; CHECK-LABEL: f4:
4747 ; CHECK: ni 0(%r2), 254
4848 ; CHECK: br %r14
49 %val = load i8 , i8 *%ptr
49 %val = load i8, i8 *%ptr
5050 %ext = zext i8 %val to i64
5151 %and = and i64 %ext, 254
5252 %trunc = trunc i64 %and to i8
5959 ; CHECK-LABEL: f5:
6060 ; CHECK: ni 0(%r2), 254
6161 ; CHECK: br %r14
62 %val = load i8 , i8 *%ptr
62 %val = load i8, i8 *%ptr
6363 %ext = sext i8 %val to i32
6464 %and = and i32 %ext, -2
6565 %trunc = trunc i32 %and to i8
7272 ; CHECK-LABEL: f6:
7373 ; CHECK: ni 0(%r2), 254
7474 ; CHECK: br %r14
75 %val = load i8 , i8 *%ptr
75 %val = load i8, i8 *%ptr
7676 %ext = sext i8 %val to i64
7777 %and = and i64 %ext, -2
7878 %trunc = trunc i64 %and to i8
8585 ; CHECK-LABEL: f7:
8686 ; CHECK: ni 0(%r2), 254
8787 ; CHECK: br %r14
88 %val = load i8 , i8 *%ptr
88 %val = load i8, i8 *%ptr
8989 %ext = sext i8 %val to i32
9090 %and = and i32 %ext, 254
9191 %trunc = trunc i32 %and to i8
9898 ; CHECK-LABEL: f8:
9999 ; CHECK: ni 0(%r2), 254
100100 ; CHECK: br %r14
101 %val = load i8 , i8 *%ptr
101 %val = load i8, i8 *%ptr
102102 %ext = sext i8 %val to i64
103103 %and = and i64 %ext, 254
104104 %trunc = trunc i64 %and to i8
1212 ; CHECK: nc 1(1,%r2), 0(%r2)
1313 ; CHECK: br %r14
1414 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
15 %val = load i8 , i8 *%ptr1
16 %old = load i8 , i8 *%ptr2
15 %val = load i8, i8 *%ptr1
16 %old = load i8, i8 *%ptr2
1717 %and = and i8 %val, %old
1818 store i8 %and, i8 *%ptr2
1919 ret void
2525 ; CHECK: nc 1(1,%r2), 0(%r2)
2626 ; CHECK: br %r14
2727 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
28 %val = load i8 , i8 *%ptr1
29 %old = load i8 , i8 *%ptr2
28 %val = load i8, i8 *%ptr1
29 %old = load i8, i8 *%ptr2
3030 %and = and i8 %old, %val
3131 store i8 %and, i8 *%ptr2
3232 ret void
3939 ; CHECK: nc 1(1,%r2), 0(%r2)
4040 ; CHECK: br %r14
4141 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
42 %val = load i8 , i8 *%ptr1
42 %val = load i8, i8 *%ptr1
4343 %extval = zext i8 %val to i32
44 %old = load i8 , i8 *%ptr2
44 %old = load i8, i8 *%ptr2
4545 %extold = sext i8 %old to i32
4646 %and = and i32 %extval, %extold
4747 %trunc = trunc i32 %and to i8
5555 ; CHECK: nc 1(1,%r2), 0(%r2)
5656 ; CHECK: br %r14
5757 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
58 %val = load i8 , i8 *%ptr1
58 %val = load i8, i8 *%ptr1
5959 %extval = sext i8 %val to i32
60 %old = load i8 , i8 *%ptr2
60 %old = load i8, i8 *%ptr2
6161 %extold = zext i8 %old to i32
6262 %and = and i32 %extval, %extold
6363 %trunc = trunc i32 %and to i8
7171 ; CHECK: nc 1(1,%r2), 0(%r2)
7272 ; CHECK: br %r14
7373 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
74 %val = load i8 , i8 *%ptr1
74 %val = load i8, i8 *%ptr1
7575 %extval = sext i8 %val to i32
76 %old = load i8 , i8 *%ptr2
76 %old = load i8, i8 *%ptr2
7777 %extold = sext i8 %old to i32
7878 %and = and i32 %extval, %extold
7979 %trunc = trunc i32 %and to i8
8787 ; CHECK: nc 1(1,%r2), 0(%r2)
8888 ; CHECK: br %r14
8989 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
90 %val = load i8 , i8 *%ptr1
90 %val = load i8, i8 *%ptr1
9191 %extval = zext i8 %val to i32
92 %old = load i8 , i8 *%ptr2
92 %old = load i8, i8 *%ptr2
9393 %extold = zext i8 %old to i32
9494 %and = and i32 %extval, %extold
9595 %trunc = trunc i32 %and to i8
104104 ; CHECK: nc 1(1,%r2), 0(%r2)
105105 ; CHECK: br %r14
106106 %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
107 %val = load i8 , i8 *%ptr1
107 %val = load i8, i8 *%ptr1
108108 %extval = sext i8 %val to i64
109 %old = load i8 , i8 *%ptr2
109 %old = load i8, i8 *%ptr2
110110 %extold = zext i8 %old to i64
111111 %and = and i64 %extval, %extold
112112 %trunc = trunc i64 %and to i8
120120 ; CHECK: nc 2(2,%r2), 0(%r2)
121121 ; CHECK: br %r14
122122 %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
123 %val = load i16 , i16 *%ptr1
124 %old = load i16 , i16 *%ptr2
123 %val = load i16, i16 *%ptr1
124 %old = load i16, i16 *%ptr2
125125 %and = and i16 %val, %old
126126 store i16 %and, i16 *%ptr2
127127 ret void
133133 ; CHECK: nc 2(2,%r2), 0(%r2)
134134 ; CHECK: br %r14
135135 %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
136 %val = load i16 , i16 *%ptr1
136 %val = load i16, i16 *%ptr1
137137 %extval = zext i16 %val to i32
138 %old = load i16 , i16 *%ptr2
138 %old = load i16, i16 *%ptr2
139139 %extold = sext i16 %old to i32
140140 %and = and i32 %extval, %extold
141141 %trunc = trunc i32 %and to i16
149149 ; CHECK: nc 2(2,%r2), 0(%r2)
150150 ; CHECK: br %r14
151151 %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
152 %val = load i16 , i16 *%ptr1
152 %val = load i16, i16 *%ptr1
153153 %extval = sext i16 %val to i64
154 %old = load i16 , i16 *%ptr2
154 %old = load i16, i16 *%ptr2
155155 %extold = zext i16 %old to i64
156156 %and = and i64 %extval, %extold
157157 %trunc = trunc i64 %and to i16
165165 ; CHECK: nc 4(4,%r2), 0(%r2)
166166 ; CHECK: br %r14
167167 %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
168 %val = load i32 , i32 *%ptr1
169 %old = load i32 , i32 *%ptr2
168 %val = load i32, i32 *%ptr1
169 %old = load i32, i32 *%ptr2
170170 %and = and i32 %old, %val
171171 store i32 %and, i32 *%ptr2
172172 ret void
178178 ; CHECK: nc 4(4,%r2), 0(%r2)
179179 ; CHECK: br %r14
180180 %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
181 %val = load i32 , i32 *%ptr1
181 %val = load i32, i32 *%ptr1
182182 %extval = sext i32 %val to i64
183 %old = load i32 , i32 *%ptr2
183 %old = load i32, i32 *%ptr2
184184 %extold = zext i32 %old to i64
185185 %and = and i64 %extval, %extold
186186 %trunc = trunc i64 %and to i32
194194 ; CHECK: nc 8(8,%r2), 0(%r2)
195195 ; CHECK: br %r14
196196 %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
197 %val = load i64 , i64 *%ptr1
198 %old = load i64 , i64 *%ptr2
197 %val = load i64, i64 *%ptr1
198 %old = load i64, i64 *%ptr2
199199 %and = and i64 %old, %val
200200 store i64 %and, i64 *%ptr2
201201 ret void
207207 ; CHECK-NOT: nc
208208 ; CHECK: br %r14
209209 %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
210 %val = load volatile i64 , i64 *%ptr1
211 %old = load i64 , i64 *%ptr2
210 %val = load volatile i64, i64 *%ptr1
211 %old = load i64, i64 *%ptr2
212212 %and = and i64 %old, %val
213213 store i64 %and, i64 *%ptr2
214214 ret void
220220 ; CHECK-NOT: nc
221221 ; CHECK: br %r14
222222 %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
223 %val = load i64 , i64 *%ptr1
224 %old = load volatile i64 , i64 *%ptr2
223 %val = load i64, i64 *%ptr1
224 %old = load volatile i64, i64 *%ptr2
225225 %and = and i64 %old, %val
226226 store i64 %and, i64 *%ptr2
227227 ret void
233233 ; CHECK-NOT: nc
234234 ; CHECK: br %r14
235235 %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
236 %val = load i64 , i64 *%ptr1
237 %old = load i64 , i64 *%ptr2
236 %val = load i64, i64 *%ptr1
237 %old = load i64, i64 *%ptr2
238238 %and = and i64 %old, %val
239239 store volatile i64 %and, i64 *%ptr2
240240 ret void
247247 ; CHECK-LABEL: f17:
248248 ; CHECK-NOT: nc
249249 ; CHECK: br %r14
250 %val = load i64 , i64 *%ptr1
251 %old = load i64 , i64 *%ptr2
250 %val = load i64, i64 *%ptr1
251 %old = load i64, i64 *%ptr2
252252 %and = and i64 %old, %val
253253 store i64 %and, i64 *%ptr2
254254 ret void
259259 ; CHECK-LABEL: f18:
260260 ; CHECK-NOT: nc
261261 ; CHECK: br %r14
262 %val = load i64 , i64 *%ptr1, align 2
263 %old = load i64 , i64 *%ptr2
262 %val = load i64, i64 *%ptr1, align 2
263 %old = load i64, i64 *%ptr2
264264 %and = and i64 %old, %val
265265 store i64 %and, i64 *%ptr2
266266 ret void
271271 ; CHECK-LABEL: f19:
272272 ; CHECK-NOT: nc
273273 ; CHECK: br %r14
274 %val = load i64 , i64 *%ptr1, align 2
275 %old = load i64 , i64 *%ptr2
274 %val = load i64, i64 *%ptr1, align 2
275 %old = load i64, i64 *%ptr2
276276 %and = and i64 %val, %old
277277 store i64 %and, i64 *%ptr2
278278 ret void
283283 ; CHECK-LABEL: f20:
284284 ; CHECK-NOT: nc
285285 ; CHECK: br %r14
286 %val = load i64 , i64 *%ptr1
287 %old = load i64 , i64 *%ptr2, align 2
286 %val = load i64, i64 *%ptr1
287 %old = load i64, i64 *%ptr2, align 2
288288 %and = and i64 %val, %old
289289 store i64 %and, i64 *%ptr2, align 2
290290 ret void
298298 %add = add i64 %base, 1
299299 %ptr1 = inttoptr i64 %base to i64 *
300300 %ptr2 = inttoptr i64 %add to i64 *
301 %val = load i64 , i64 *%ptr1
302 %old = load i64 , i64 *%ptr2, align 1
301 %val = load i64, i64 *%ptr1
302 %old = load i64, i64 *%ptr2, align 1
303303 %and = and i64 %old, %val
304304 store i64 %and, i64 *%ptr2, align 1
305305 ret void
312312 ; CHECK-DAG: larl [[DST:%r[0-5]]], g1dst
313313 ; CHECK: nc 0(1,[[DST]]), 0([[SRC]])
314314 ; CHECK: br %r14
315 %val = load i8 , i8 *@g1src
316 %old = load i8 , i8 *@g1dst
315 %val = load i8, i8 *@g1src
316 %old = load i8, i8 *@g1dst
317317 %and = and i8 %val, %old
318318 store i8 %and, i8 *@g1dst
319319 ret void
326326 ; CHECK-DAG: larl [[DST:%r[0-5]]], g2dst
327327 ; CHECK: nc 0(2,[[DST]]), 0([[SRC]])
328328 ; CHECK: br %r14
329 %val = load i16 , i16 *@g2src
330 %old = load i16 , i16 *@g2dst
329 %val = load i16, i16 *@g2src
330 %old = load i16, i16 *@g2dst
331331 %and = and i16 %val, %old
332332 store i16 %and, i16 *@g2dst
333333 ret void
339339 ; CHECK: nc 8(8,%r2), 0(%r2)
340340 ; CHECK: br %r14
341341 %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
342 %val = load i64 , i64 *%ptr1, align 1
343 %old = load i64 , i64 *%ptr2, align 1
342 %val = load i64, i64 *%ptr1, align 1
343 %old = load i64, i64 *%ptr2, align 1
344344 %and = and i64 %old, %val
345345 store i64 %and, i64 *%ptr2, align 1
346346 ret void
351351 ; CHECK-LABEL: f25:
352352 ; CHECK: nc 0(8,%r3), 0(%r2)
353353 ; CHECK: br %r14
354 %val = load i64 , i64 *%ptr1, align 2, !tbaa !3
355 %old = load i64 , i64 *%ptr2, align 2, !tbaa !4
354 %val = load i64, i64 *%ptr1, align 2, !tbaa !3
355 %old = load i64, i64 *%ptr2, align 2, !tbaa !4
356356 %and = and i64 %old, %val
357357 store i64 %and, i64 *%ptr2, align 2, !tbaa !4
358358 ret void
363363 ; CHECK-LABEL: f26:
364364 ; CHECK-NOT: nc
365365 ; CHECK: br %r14
366 %val = load i64 , i64 *%ptr1, align 2, !tbaa !3
367 %old = load i64 , i64 *%ptr2, align 2, !tbaa !3
366 %val = load i64, i64 *%ptr1, align 2, !tbaa !3
367 %old = load i64, i64 *%ptr2, align 2, !tbaa !3
368368 %and = and i64 %old, %val
369369 store i64 %and, i64 *%ptr2, align 2, !tbaa !3
370370 ret void
1818 ; CHECK: br %r14
1919 %ptr3 = getelementptr i32, i32 *%ptr1, i64 1024
2020 %ptr4 = getelementptr i32, i32 *%ptr2, i64 131071
21 %old1 = load i32 , i32 *%ptr1
22 %old2 = load i32 , i32 *%ptr2
23 %old3 = load i32 , i32 *%ptr3
24 %old4 = load i32 , i32 *%ptr4
21 %old1 = load i32, i32 *%ptr1
22 %old2 = load i32, i32 *%ptr2
23 %old3 = load i32, i32 *%ptr3
24 %old4 = load i32, i32 *%ptr4
2525 %res = call { i32, i32, i32, i32 } asm "blah $0, $1, $2, $3",
2626 "=h,=r,=h,=r,0,1,2,3"(i32 %old1, i32 %old2, i32 %old3, i32 %old4)
2727 %new1 = extractvalue { i32, i32, i32, i32 } %res, 0
6262 ; CHECK: br %r14
6363 %ptr3 = getelementptr i8, i8 *%ptr1, i64 4096
6464 %ptr4 = getelementptr i8, i8 *%ptr2, i64 524287
65 %val1 = load i8 , i8 *%ptr1
66 %val2 = load i8 , i8 *%ptr2
67 %val3 = load i8 , i8 *%ptr3
68 %val4 = load i8 , i8 *%ptr4
65 %val1 = load i8, i8 *%ptr1
66 %val2 = load i8, i8 *%ptr2
67 %val3 = load i8, i8 *%ptr3
68 %val4 = load i8, i8 *%ptr4
6969 %ext1 = sext i8 %val1 to i32
7070 %ext2 = sext i8 %val2 to i32
7171 %ext3 = sext i8 %val3 to i32
8686 ; CHECK: br %r14
8787 %ptr3 = getelementptr i16, i16 *%ptr1, i64 2048
8888 %ptr4 = getelementptr i16, i16 *%ptr2, i64 262143
89 %val1 = load i16 , i16 *%ptr1
90 %val2 = load i16 , i16 *%ptr2
91 %val3 = load i16 , i16 *%ptr3
92 %val4 = load i16 , i16 *%ptr4
89 %val1 = load i16, i16 *%ptr1
90 %val2 = load i16, i16 *%ptr2
91 %val3 = load i16, i16 *%ptr3
92 %val4 = load i16, i16 *%ptr4
9393 %ext1 = sext i16 %val1 to i32
9494 %ext2 = sext i16 %val2 to i32
9595 %ext3 = sext i16 %val3 to i32
110110 ; CHECK: br %r14
111111 %ptr3 = getelementptr i8, i8 *%ptr1, i64 4096
112112 %ptr4 = getelementptr i8, i8 *%ptr2, i64 524287
113 %val1 = load i8 , i8 *%ptr1
114 %val2 = load i8 , i8 *%ptr2
115 %val3 = load i8 , i8 *%ptr3
116 %val4 = load i8 , i8 *%ptr4
113 %val1 = load i8, i8 *%ptr1
114 %val2 = load i8, i8 *%ptr2
115 %val3 = load i8, i8 *%ptr3
116 %val4 = load i8, i8 *%ptr4
117117 %ext1 = zext i8 %val1 to i32
118118 %ext2 = zext i8 %val2 to i32
119119 %ext3 = zext i8 %val3 to i32
134134 ; CHECK: br %r14
135135 %ptr3 = getelementptr i16, i16 *%ptr1, i64 2048
136136 %ptr4 = getelementptr i16, i16 *%ptr2, i64 262143
137 %val1 = load i16 , i16 *%ptr1
138 %val2 = load i16 , i16 *%ptr2
139 %val3 = load i16 , i16 *%ptr3
140 %val4 = load i16 , i16 *%ptr4
137 %val1 = load i16, i16 *%ptr1
138 %val2 = load i16, i16 *%ptr2
139 %val3 = load i16, i16 *%ptr3
140 %val4 = load i16, i16 *%ptr4
141141 %ext1 = zext i16 %val1 to i32
142142 %ext2 = zext i16 %val2 to i32
143143 %ext3 = zext i16 %val3 to i32
717717 ; CHECK: clhf [[REG2]], 0(%r3)
718718 ; CHECK: br %r14
719719 %res1 = call i32 asm "stepa $0", "=h"()
720 %load1 = load i32 , i32 *%ptr1
720 %load1 = load i32, i32 *%ptr1
721721 %cmp1 = icmp sle i32 %res1, %load1
722722 %sel1 = select i1 %cmp1, i32 0, i32 1
723723 %res2 = call i32 asm "stepb $0, $1", "=h,r"(i32 %sel1)
724 %load2 = load i32 , i32 *%ptr2
724 %load2 = load i32, i32 *%ptr2
725725 %cmp2 = icmp ule i32 %res2, %load2
726726 %sel2 = select i1 %cmp2, i32 0, i32 1
727727 store i32 %sel2, i32 *%ptr1
737737 ; CHECK: cl [[REG2]], 0(%r3)
738738 ; CHECK: br %r14
739739 %res1 = call i32 asm "stepa $0", "=r"()
740 %load1 = load i32 , i32 *%ptr1
740 %load1 = load i32, i32 *%ptr1
741741 %cmp1 = icmp sle i32 %res1, %load1
742742 %sel1 = select i1 %cmp1, i32 0, i32 1
743743 %res2 = call i32 asm "stepb $0, $1", "=r,r"(i32 %sel1)
744 %load2 = load i32 , i32 *%ptr2
744 %load2 = load i32, i32 *%ptr2
745745 %cmp2 = icmp ule i32 %res2, %load2
746746 %sel2 = select i1 %cmp2, i32 0, i32 1
747747 store i32 %sel2, i32 *%ptr1
55 ; CHECK-LABEL: f1:
66 ; CHECK: lb %r2, 0(%r2)
77 ; CHECK: br %r14
8 %val = load atomic i8 , i8 *%src seq_cst, align 1
8 %val = load atomic i8, i8 *%src seq_cst, align 1
99 ret i8 %val
1010 }
55 ; CHECK-LABEL: f1:
66 ; CHECK: lh %r2, 0(%r2)
77 ; CHECK: br %r14
8 %val = load atomic i16 , i16 *%src seq_cst, align 2
8 %val = load atomic i16, i16 *%src seq_cst, align 2
99 ret i16 %val
1010 }
55 ; CHECK-LABEL: f1:
66 ; CHECK: l %r2, 0(%r2)
77 ; CHECK: br %r14
8 %val = load atomic i32 , i32 *%src seq_cst, align 4
8 %val = load atomic i32, i32 *%src seq_cst, align 4
99 ret i32 %val
1010 }
55 ; CHECK-LABEL: f1:
66 ; CHECK: lg %r2, 0(%r2)
77 ; CHECK: br %r14
8 %val = load atomic i64 , i64 *%src seq_cst, align 8
8 %val = load atomic i64, i64 *%src seq_cst, align 8
99 ret i64 %val
1010 }
1111 ; CHECK-NEXT: je .L[[LABEL]]
1212 br label %loop
1313 loop:
14 %val = load volatile i32 , i32 *%src
14 %val = load volatile i32, i32 *%src
1515 %cond = icmp eq i32 %target, %val
1616 br i1 %cond, label %loop, label %exit
1717 exit:
2626 ; CHECK-NEXT: jlh .L[[LABEL]]
2727 br label %loop
2828 loop:
29 %val = load volatile i32 , i32 *%src
29 %val = load volatile i32, i32 *%src
3030 %cond = icmp ne i32 %target, %val
3131 br i1 %cond, label %loop, label %exit
3232 exit:
4141 ; CHECK-NEXT: jle .L[[LABEL]]
4242 br label %loop
4343 loop:
44 %val = load volatile i32 , i32 *%src
44 %val = load volatile i32, i32 *%src
4545 %cond = icmp sle i32 %target, %val
4646 br i1 %cond, label %loop, label %exit
4747 exit:
5656 ; CHECK-NEXT: jl .L[[LABEL]]
5757 br label %loop
5858 loop:
59 %val = load volatile i32 , i32 *%src
59 %val = load volatile i32, i32 *%src
6060 %cond = icmp slt i32 %target, %val
6161 br i1 %cond, label %loop, label %exit
6262 exit:
7171 ; CHECK-NEXT: jh .L[[LABEL]]
7272 br label %loop
7373 loop:
74 %val = load volatile i32 , i32 *%src
74 %val = load volatile i32, i32 *%src
7575 %cond = icmp sgt i32 %target, %val
7676 br i1 %cond, label %loop, label %exit
7777 exit:
8686 ; CHECK-NEXT: jhe .L[[LABEL]]
8787 br label %loop
8888 loop:
89 %val = load volatile i32 , i32 *%src
89 %val = load volatile i32, i32 *%src
9090 %cond = icmp sge i32 %target, %val
9191 br i1 %cond, label %loop, label %exit
9292 exit:
99 ; CHECK-NEXT: jle .L[[LABEL]]
1010 br label %loop
1111 loop:
12 %val = load volatile i32 , i32 *%src
12 %val = load volatile i32, i32 *%src
1313 %cond = icmp ule i32 %target, %val
1414 br i1 %cond, label %loop, label %exit
1515 exit:
2424 ; CHECK-NEXT: jl .L[[LABEL]]
2525 br label %loop
2626 loop:
27 %val = load volatile i32 , i32 *%src
27 %val = load volatile i32, i32 *%src
2828 %cond = icmp ult i32 %target, %val
2929 br i1 %cond, label %loop, label %exit
3030 exit:
3939 ; CHECK-NEXT: jh .L[[LABEL]]
4040 br label %loop
4141 loop:
42 %val = load volatile i32 , i32 *%src
42 %val = load volatile i32, i32 *%src
4343 %cond = icmp ugt i32 %target, %val
4444 br i1 %cond, label %loop, label %exit
4545 exit:
5454 ; CHECK-NEXT: jhe .L[[LABEL]]
5555 br label %loop
5656 loop:
57 %val = load volatile i32 , i32 *%src
57 %val = load volatile i32, i32 *%src
5858 %cond = icmp uge i32 %target, %val
5959 br i1 %cond, label %loop, label %exit
6060 exit:
1010 ; CHECK-NEXT: je .L[[LABEL]]
1111 br label %loop
1212 loop:
13 %val = load volatile float , float *%src
13 %val = load volatile float, float *%src
1414 %cond = fcmp oeq float %target, %val
1515 br i1 %cond, label %loop, label %exit
1616 exit:
2525 ; CHECK-NEXT: jlh .L[[LABEL]]
2626 br label %loop
2727 loop:
28 %val = load volatile float , float *%src
28 %val = load volatile float, float *%src
2929 %cond = fcmp one float %target, %val
3030 br i1 %cond, label %loop, label %exit
3131 exit:
4040 ; CHECK-NEXT: jle .L[[LABEL]]
4141 br label %loop
4242 loop:
43 %val = load volatile float , float *%src
43 %val = load volatile float, float *%src
4444 %cond = fcmp ole float %target, %val
4545 br i1 %cond, label %loop, label %exit
4646 exit:
5555 ; CHECK-NEXT: jl .L[[LABEL]]
5656 br label %loop
5757 loop:
58 %val = load volatile float , float *%src
58 %val = load volatile float, float *%src
5959 %cond = fcmp olt float %target, %val
6060 br i1 %cond, label %loop, label %exit
6161 exit:
7070 ; CHECK-NEXT: jh .L[[LABEL]]
7171 br label %loop
7272 loop:
73 %val = load volatile float , float *%src
73 %val = load volatile float, float *%src
7474 %cond = fcmp ogt float %target, %val
7575 br i1 %cond, label %loop, label %exit
7676 exit:
8585 ; CHECK-NEXT: jhe .L[[LABEL]]
8686 br label %loop
8787 loop:
88 %val = load volatile float , float *%src
88 %val = load volatile float, float *%src
8989 %cond = fcmp oge float %target, %val
9090 br i1 %cond, label %loop, label %exit
9191 exit:
100100 ; CHECK-NEXT: jnlh .L[[LABEL]]
101101 br label %loop
102102 loop:
103 %val = load volatile float , float *%src
103 %val = load volatile float, float *%src
104104 %cond = fcmp ueq float %target, %val
105105 br i1 %cond, label %loop, label %exit
106106 exit:
115115 ; CHECK-NEXT: jne .L[[LABEL]]
116116 br label %loop
117117 loop:
118 %val = load volatile float , float *%src
118 %val = load volatile float, float *%src
119119 %cond = fcmp une float %target, %val
120120 br i1 %cond, label %loop, label %exit
121121 exit:
130130 ; CHECK-NEXT: jnh .L[[LABEL]]
131131 br label %loop
132132 loop:
133 %val = load volatile float , float *%src
133 %val = load volatile float, float *%src
134134 %cond = fcmp ule float %target, %val
135135 br i1 %cond, label %loop, label %exit
136136 exit:
145145 ; CHECK-NEXT: jnhe .L[[LABEL]]
146146 br label %loop
147147 loop:
148 %val = load volatile float , float *%src
148 %val = load volatile float, float *%src
149149 %cond = fcmp ult float %target, %val
150150 br i1 %cond, label %loop, label %exit
151151 exit:
160160 ; CHECK-NEXT: jnle .L[[LABEL]]
161161 br label %loop
162162 loop:
163 %val = load volatile float , float *%src
163 %val = load volatile float, float *%src
164164 %cond = fcmp ugt float %target, %val
165165 br i1 %cond, label %loop, label %exit
166166 exit:
175175 ; CHECK-NEXT: jnl .L[[LABEL]]
176176 br label %loop
177177 loop:
178 %val = load volatile float , float *%src
178 %val = load volatile float, float *%src
179179 %cond = fcmp uge float %target, %val
180180 br i1 %cond, label %loop, label %exit
181181 exit:
192192 ; CHECK-NEXT: jno .L[[LABEL]]
193193 br label %loop
194194 loop:
195 %val = load volatile float , float *%src
195 %val = load volatile float, float *%src
196196 %cond = fcmp ord float %target, %val
197197 br i1 %cond, label %loop, label %exit
198198 exit:
209209 ; CHECK-NEXT: jo .L[[LABEL]]
210210 br label %loop
211211 loop:
212 %val = load volatile float , float *%src
212 %val = load volatile float, float *%src
213213 %cond = fcmp uno float %target, %val
214214 br i1 %cond, label %loop, label %exit
215215 exit:
9999 br label %loop
100100 loop:
101101 %val = call i32 @foo()
102 %byte = load i8 , i8 *%targetptr
102 %byte = load i8, i8 *%targetptr
103103 %target = zext i8 %byte to i32
104104 %cond = icmp eq i32 %val, %target
105105 br i1 %cond, label %loop, label %exit
117117 br label %loop
118118 loop:
119119 %val = call i32 @foo()
120 %half = load i16 , i16 *%targetptr
120 %half = load i16, i16 *%targetptr
121121 %target = zext i16 %half to i32
122122 %cond = icmp eq i32 %val, %target
123123 br i1 %cond, label %loop, label %exit
135135 br label %loop
136136 loop:
137137 %val = call i32 @foo()
138 %half = load i16 , i16 *@g1
138 %half = load i16, i16 *@g1
139139 %target = zext i16 %half to i32
140140 %cond = icmp eq i32 %val, %target
141141 br i1 %cond, label %loop, label %exit
156156 loop:
157157 %val = call i32 @foo()
158158 %targetptr2 = getelementptr i8, i8 *%targetptr1, i64 1
159 %byte1 = load i8 , i8 *%targetptr1
160 %byte2 = load i8 , i8 *%targetptr2
159 %byte1 = load i8, i8 *%targetptr1
160 %byte2 = load i8, i8 *%targetptr2
161161 %ext1 = zext i8 %byte1 to i32
162162 %ext2 = zext i8 %byte2 to i32
163163 %cond = icmp ult i32 %ext1, %ext2
178178 loop:
179179 %val = call i32 @foo()
180180 %targetptr2 = getelementptr i16, i16 *%targetptr1, i64 1
181 %half1 = load i16 , i16 *%targetptr1
182 %half2 = load i16 , i16 *%targetptr2
181 %half1 = load i16, i16 *%targetptr1
182 %half2 = load i16, i16 *%targetptr2
183183 %ext1 = zext i16 %half1 to i32
184184 %ext2 = zext i16 %half2 to i32
185185 %cond = icmp ult i32 %ext1, %ext2
1313 ; CHECK: .L[[LABEL]]:
1414 ; CHECK: brasl %r14, foo@PLT
1515 entry:
16 %b = load i32 , i32 *%bptr
16 %b = load i32, i32 *%bptr
1717 %cmp = icmp ult i32 %a, %b
1818 br i1 %cmp, label %callit, label %return
1919
88 ; CHECK-LABEL: f1:
99 ; CHECK: lrv %r2, 0(%r2)
1010 ; CHECK: br %r14
11 %a = load i32 , i32 *%src
11 %a = load i32, i32 *%src
1212 %swapped = call i32 @llvm.bswap.i32(i32 %a)
1313 ret i32 %swapped
1414 }
1919 ; CHECK: lrv %r2, 524284(%r2)
2020 ; CHECK: br %r14
2121 %ptr = getelementptr i32, i32 *%src, i64 131071
22 %a = load i32 , i32 *%ptr
22 %a = load i32, i32 *%ptr
2323 %swapped = call i32 @llvm.bswap.i32(i32 %a)
2424 ret i32 %swapped
2525 }
3232 ; CHECK: lrv %r2, 0(%r2)
3333 ; CHECK: br %r14
3434 %ptr = getelementptr i32, i32 *%src, i64 131072
35 %a = load i32 , i32 *%ptr
35 %a = load i32, i32 *%ptr
3636 %swapped = call i32 @llvm.bswap.i32(i32 %a)
3737 ret i32 %swapped
3838 }
4343 ; CHECK: lrv %r2, -4(%r2)
4444 ; CHECK: br %r14
4545 %ptr = getelementptr i32, i32 *%src, i64 -1
46 %a = load i32 , i32 *%ptr
46 %a = load i32, i32 *%ptr
4747 %swapped = call i32 @llvm.bswap.i32(i32 %a)
4848 ret i32 %swapped
4949 }
5454 ; CHECK: lrv %r2, -524288(%r2)
5555 ; CHECK: br %r14
5656 %ptr = getelementptr i32, i32 *%src, i64 -131072
57 %a = load i32 , i32 *%ptr
57 %a = load i32, i32 *%ptr
5858 %swapped = call i32 @llvm.bswap.i32(i32 %a)
5959 ret i32 %swapped
6060 }
6767 ; CHECK: lrv %r2, 0(%r2)
6868 ; CHECK: br %r14
6969 %ptr = getelementptr i32, i32 *%src, i64 -131073
70 %a = load i32 , i32 *%ptr
70 %a = load i32, i32 *%ptr
7171 %swapped = call i32 @llvm.bswap.i32(i32 %a)
7272 ret i32 %swapped
7373 }
8080 %add1 = add i64 %src, %index
8181 %add2 = add i64 %add1, 524287
8282 %ptr = inttoptr i64 %add2 to i32 *
83 %a = load i32 , i32 *%ptr
83 %a = load i32, i32 *%ptr
8484 %swapped = call i32 @llvm.bswap.i32(i32 %a)
8585 ret i32 %swapped
8686 }
88 ; CHECK-LABEL: f1:
99 ; CHECK: lrvg %r2, 0(%r2)
1010 ; CHECK: br %r14
11 %a = load i64 , i64 *%src
11 %a = load i64, i64 *%src
1212 %swapped = call i64 @llvm.bswap.i64(i64 %a)
1313 ret i64 %swapped
1414 }
1919 ; CHECK: lrvg %r2, 524280(%r2)
2020 ; CHECK: br %r14
2121 %ptr = getelementptr i64, i64 *%src, i64 65535
22 %a = load i64 , i64 *%ptr
22 %a = load i64, i64 *%ptr
2323 %swapped = call i64 @llvm.bswap.i64(i64 %a)
2424 ret i64 %swapped
2525 }
3232 ; CHECK: lrvg %r2, 0(%r2)
3333 ; CHECK: br %r14
3434 %ptr = getelementptr i64, i64 *%src, i64 65536
35 %a = load i64 , i64 *%ptr
35 %a = load i64, i64 *%ptr
3636 %swapped = call i64 @llvm.bswap.i64(i64 %a)
3737 ret i64 %swapped
3838 }
4343 ; CHECK: lrvg %r2, -8(%r2)
4444 ; CHECK: br %r14
4545 %ptr = getelementptr i64, i64 *%src, i64 -1
46 %a = load i64 , i64 *%ptr
46 %a = load i64, i64 *%ptr
4747 %swapped = call i64 @llvm.bswap.i64(i64 %a)
4848 ret i64 %swapped
4949 }
5454 ; CHECK: lrvg %r2, -524288(%r2)
5555 ; CHECK: br %r14
5656 %ptr = getelementptr i64, i64 *%src, i64 -65536
57 %a = load i64 , i64 *%ptr
57 %a = load i64, i64 *%ptr
5858 %swapped = call i64 @llvm.bswap.i64(i64 %a)
5959 ret i64 %swapped
6060 }
6767 ; CHECK: lrvg %r2, 0(%r2)
6868 ; CHECK: br %r14
6969 %ptr = getelementptr i64, i64 *%src, i64 -65537
70 %a = load i64 , i64 *%ptr
70 %a = load i64, i64 *%ptr
7171 %swapped = call i64 @llvm.bswap.i64(i64 %a)
7272 ret i64 %swapped
7373 }
8080 %add1 = add i64 %src, %index
8181 %add2 = add i64 %add1, 524287
8282 %ptr = inttoptr i64 %add2 to i64 *
83 %a = load i64 , i64 *%ptr
83 %a = load i64, i64 *%ptr
8484 %swapped = call i64 @llvm.bswap.i64(i64 %a)
8585 ret i64 %swapped
8686 }
88 ; CHECK-LABEL: f1:
99 ; CHECK: lrvh %r2, 0(%r2)
1010 ; CHECK: br %r14
11 %a = load i16 , i16 *%src
11 %a = load i16, i16 *%src
1212 %swapped = call i16 @llvm.bswap.i16(i16 %a)
1313 ret i16 %swapped
1414 }
1919 ; CHECK: lrvh %r2, 524286(%r2)
2020 ; CHECK: br %r14
2121 %ptr = getelementptr i16, i16 *%src, i64 262143
22 %a = load i16 , i16 *%ptr
22 %a = load i16, i16 *%ptr
2323 %swapped = call i16 @llvm.bswap.i16(i16 %a)
2424 ret i16 %swapped
2525 }
3232 ; CHECK: lrvh %r2, 0(%r2)
3333 ; CHECK: br %r14
3434 %ptr = getelementptr i16, i16 *%src, i64 262144
35 %a = load i16 , i16 *%ptr
35 %a = load i16, i16 *%ptr
3636 %swapped = call i16 @llvm.bswap.i16(i16 %a)
3737 ret i16 %swapped
3838 }
4343 ; CHECK: lrvh %r2, -2(%r2)
4444 ; CHECK: br %r14
4545 %ptr = getelementptr i16, i16 *%src, i64 -1
46 %a = load i16 , i16 *%ptr
46 %a = load i16, i16 *%ptr
4747 %swapped = call i16 @llvm.bswap.i16(i16 %a)
4848 ret i16 %swapped
4949 }
5454 ; CHECK: lrvh %r2, -524288(%r2)
5555 ; CHECK: br %r14
5656 %ptr = getelementptr i16, i16 *%src, i64 -262144
57 %a = load i16 , i16 *%ptr
57 %a = load i16, i16 *%ptr
5858 %swapped = call i16 @llvm.bswap.i16(i16 %a)
5959 ret i16 %swapped
6060 }
6767 ; CHECK: lrvh %r2, 0(%r2)
6868 ; CHECK: br %r14
6969 %ptr = getelementptr i16, i16 *%src, i64 -262145
70 %a = load i16 , i16 *%ptr
70 %a = load i16, i16 *%ptr
7171 %swapped = call i16 @llvm.bswap.i16(i16 %a)
7272 ret i16 %swapped
7373 }
8080 %add1 = add i64 %src, %index
8181 %add2 = add i64 %add1, 524287
8282 %ptr = inttoptr i64 %add2 to i16 *
83 %a = load i16 , i16 *%ptr
83 %a = load i16, i16 *%ptr
8484 %swapped = call i16 @llvm.bswap.i16(i16 %a)
8585 ret i16 %swapped
8686 }
1414 ; CHECK: loche %r2, 0(%r3)
1515 ; CHECK: br %r14
1616 %cond = icmp ult i32 %limit, 42
17 %other = load i32 , i32 *%ptr
17 %other = load i32, i32 *%ptr
1818 %res = select i1 %cond, i32 %easy, i32 %other
1919 ret i32 %res
2020 }
2626 ; CHECK: locl %r2, 0(%r3)
2727 ; CHECK: br %r14
2828 %cond = icmp ult i32 %limit, 42
29 %other = load i32 , i32 *%ptr
29 %other = load i32, i32 *%ptr
3030 %res = select i1 %cond, i32 %other, i32 %easy
3131 ret i32 %res
3232 }
3939 ; CHECK: br %r14
4040 %ptr = getelementptr i32, i32 *%base, i64 131071
4141 %cond = icmp ult i32 %limit, 42
42 %other = load i32 , i32 *%ptr
42 %other = load i32, i32 *%ptr
4343 %res = select i1 %cond, i32 %easy, i32 %other
4444 ret i32 %res
4545 }
5353 ; CHECK: br %r14
5454 %ptr = getelementptr i32, i32 *%base, i64 131072
5555 %cond = icmp ult i32 %limit, 42
56 %other = load i32 , i32 *%ptr
56 %other = load i32, i32 *%ptr
5757 %res = select i1 %cond, i32 %easy, i32 %other
5858 ret i32 %res
5959 }
6666 ; CHECK: br %r14
6767 %ptr = getelementptr i32, i32 *%base, i64 -131072
6868 %cond = icmp ult i32 %limit, 42
69 %other = load i32 , i32 *%ptr
69 %other = load i32, i32 *%ptr
7070 %res = select i1 %cond, i32 %easy, i32 %other
7171 ret i32 %res
7272 }
8080 ; CHECK: br %r14
8181 %ptr = getelementptr i32, i32 *%base, i64 -131073
8282 %cond = icmp ult i32 %limit, 42
83 %other = load i32 , i32 *%ptr
83 %other = load i32, i32 *%ptr
8484 %res = select i1 %cond, i32 %easy, i32 %other
8585 ret i32 %res
8686 }
9494 %ptr = alloca i32
9595 %easy = call i32 @foo(i32 *%ptr)
9696 %cond = icmp ult i32 %limit, 42
97 %other = load i32 , i32 *%ptr
97 %other = load i32, i32 *%ptr
9898 %res = select i1 %cond, i32 %easy, i32 %other
9999 ret i32 %res
100100 }
108108 %add = add i64 %base, %index
109109 %ptr = inttoptr i64 %add to i32 *
110110 %cond = icmp ult i32 %limit, 42
111 %other = load i32 , i32 *%ptr
111 %other = load i32, i32 *%ptr
112112 %res = select i1 %cond, i32 %easy, i32 %other
113113 ret i32 %res
114114 }
124124 br i1 %cmp, label %load, label %exit
125125
126126 load:
127 %other = load i32 , i32 *%ptr
127 %other = load i32, i32 *%ptr
128128 br label %exit
129129
130130 exit:
1010 ; CHECK: locghe %r2, 0(%r3)
1111 ; CHECK: br %r14
1212 %cond = icmp ult i64 %limit, 42
13 %other = load i64 , i64 *%ptr
13 %other = load i64, i64 *%ptr
1414 %res = select i1 %cond, i64 %easy, i64 %other
1515 ret i64 %res
1616 }
2222 ; CHECK: locgl %r2, 0(%r3)
2323 ; CHECK: br %r14
2424 %cond = icmp ult i64 %limit, 42
25 %other = load i64 , i64 *%ptr
25 %other = load i64, i64 *%ptr
2626 %res = select i1 %cond, i64 %other, i64 %easy
2727 ret i64 %res
2828 }
3535 ; CHECK: br %r14
3636 %ptr = getelementptr i64, i64 *%base, i64 65535
3737 %cond = icmp ult i64 %limit, 42
38 %other = load i64 , i64 *%ptr
38 %other = load i64, i64 *%ptr
3939 %res = select i1 %cond, i64 %easy, i64 %other
4040 ret i64 %res
4141 }
4949 ; CHECK: br %r14
5050 %ptr = getelementptr i64, i64 *%base, i64 65536
5151 %cond = icmp ult i64 %limit, 42
52 %other = load i64 , i64 *%ptr
52 %other = load i64, i64 *%ptr
5353 %res = select i1 %cond, i64 %easy, i64 %other
5454 ret i64 %res
5555 }
6262 ; CHECK: br %r14
6363 %ptr = getelementptr i64, i64 *%base, i64 -65536
6464 %cond = icmp ult i64 %limit, 42
65 %other = load i64 , i64 *%ptr
65 %other = load i64, i64 *%ptr
6666 %res = select i1 %cond, i64 %easy, i64 %other
6767 ret i64 %res
6868 }
7676 ; CHECK: br %r14
7777 %ptr = getelementptr i64, i64 *%base, i64 -65537
7878 %cond = icmp ult i64 %limit, 42
79 %other = load i64 , i64 *%ptr
79 %other = load i64, i64 *%ptr
8080 %res = select i1 %cond, i64 %easy, i64 %other
8181 ret i64 %res
8282 }
9090 %ptr = alloca i64
9191 %easy = call i64 @foo(i64 *%ptr)
9292 %cond = icmp ult i64 %limit, 42
93 %other = load i64 , i64 *%ptr
93 %other = load i64, i64 *%ptr
9494 %res = select i1 %cond, i64 %easy, i64 %other
9595 ret i64 %res
9696 }
104104 %add = add i64 %base, %index
105105 %ptr = inttoptr i64 %add to i64 *
106106 %cond = icmp ult i64 %limit, 42
107 %other = load i64 , i64 *%ptr
107 %other = load i64, i64 *%ptr
108108 %res = select i1 %cond, i64 %easy, i64 %other
109109 ret i64 %res
110110 }
120120 br i1 %cmp, label %load, label %exit
121121
122122 load:
123 %other = load i64 , i64 *%ptr
123 %other = load i64, i64 *%ptr
124124 br label %exit
125125
126126 exit:
1313 ; CHECK: stc %r3, 0(%r2)
1414 ; CHECK: br %r14
1515 %cond = icmp ult i32 %limit, 420
16 %orig = load i8 , i8 *%ptr
16 %orig = load i8, i8 *%ptr
1717 %res = select i1 %cond, i8 %orig, i8 %alt
1818 store i8 %res, i8 *%ptr
1919 ret void
2828 ; CHECK: stc %r3, 0(%r2)
2929 ; CHECK: br %r14
3030 %cond = icmp ult i32 %limit, 420
31 %orig = load i8 , i8 *%ptr
31 %orig = load i8, i8 *%ptr
3232 %res = select i1 %cond, i8 %alt, i8 %orig
3333 store i8 %res, i8 *%ptr
3434 ret void
4444 ; CHECK: stc %r3, 0(%r2)
4545 ; CHECK: br %r14
4646 %cond = icmp ult i32 %limit, 420
47 %orig = load i8 , i8 *%ptr
47 %orig = load i8, i8 *%ptr
4848 %ext = sext i8 %orig to i32
4949 %res = select i1 %cond, i32 %ext, i32 %alt
5050 %trunc = trunc i32 %res to i8
6161 ; CHECK: stc %r3, 0(%r2)
6262 ; CHECK: br %r14
6363 %cond = icmp ult i32 %limit, 420
64 %orig = load i8 , i8 *%ptr
64 %orig = load i8, i8 *%ptr
6565 %ext = sext i8 %orig to i32
6666 %res = select i1 %cond, i32 %alt, i32 %ext
6767 %trunc = trunc i32 %res to i8
7979 ; CHECK: stc %r3, 0(%r2)
8080 ; CHECK: br %r14
8181 %cond = icmp ult i32 %limit, 420
82 %orig = load i8 , i8 *%ptr
82 %orig = load i8, i8 *%ptr
8383 %ext = zext i8 %orig to i32
8484 %res = select i1 %cond, i32 %ext, i32 %alt
8585 %trunc = trunc i32 %res to i8
9696 ; CHECK: stc %r3, 0(%r2)
9797 ; CHECK: br %r14
9898 %cond = icmp ult i32 %limit, 420
99 %orig = load i8 , i8 *%ptr
99 %orig = load i8, i8 *%ptr
100100 %ext = zext i8 %orig to i32
101101 %res = select i1 %cond, i32 %alt, i32 %ext
102102 %trunc = trunc i32 %res to i8
114114 ; CHECK: stc %r3, 0(%r2)
115115 ; CHECK: br %r14
116116 %cond = icmp ult i32 %limit, 420
117 %orig = load i8 , i8 *%ptr
117 %orig = load i8, i8 *%ptr
118118 %ext = sext i8 %orig to i64
119119 %res = select i1 %cond, i64 %ext, i64 %alt
120120 %trunc = trunc i64 %res to i8
131131 ; CHECK: stc %r3, 0(%r2)
132132 ; CHECK: br %r14
133133 %cond = icmp ult i32 %limit, 420
134 %orig = load i8 , i8 *%ptr
134 %orig = load i8, i8 *%ptr
135135 %ext = sext i8 %orig to i64
136136 %res = select i1 %cond, i64 %alt, i64 %ext
137137 %trunc = trunc i64 %res to i8
149149 ; CHECK: stc %r3, 0(%r2)
150150 ; CHECK: br %r14
151151 %cond = icmp ult i32 %limit, 420
152 %orig = load i8 , i8 *%ptr
152 %orig = load i8, i8 *%ptr
153153 %ext = zext i8 %orig to i64
154154 %res = select i1 %cond, i64 %ext, i64 %alt
155155 %trunc = trunc i64 %res to i8
166166 ; CHECK: stc %r3, 0(%r2)
167167 ; CHECK: br %r14
168168 %cond = icmp ult i32 %limit, 420
169 %orig = load i8 , i8 *%ptr
169 %orig = load i8, i8 *%ptr
170170 %ext = zext i8 %orig to i64
171171 %res = select i1 %cond, i64 %alt, i64 %ext
172172 %trunc = trunc i64 %res to i8
184184 ; CHECK: br %r14
185185 %ptr = getelementptr i8, i8 *%base, i64 4095
186186 %cond = icmp ult i32 %limit, 420
187 %orig = load i8 , i8 *%ptr
187 %orig = load i8, i8 *%ptr
188188 %res = select i1 %cond, i8 %orig, i8 %alt
189189 store i8 %res, i8 *%ptr
190190 ret void
200200 ; CHECK: br %r14
201201 %ptr = getelementptr i8, i8 *%base, i64 4096
202202 %cond = icmp ult i32 %limit, 420
203 %orig = load i8 , i8 *%ptr
203 %orig = load i8, i8 *%ptr
204204 %res = select i1 %cond, i8 %orig, i8 %alt
205205 store i8 %res, i8 *%ptr
206206 ret void
216216 ; CHECK: br %r14
217217 %ptr = getelementptr i8, i8 *%base, i64 524287
218218 %cond = icmp ult i32 %limit, 420
219 %orig = load i8 , i8 *%ptr
219 %orig = load i8, i8 *%ptr
220220 %res = select i1 %cond, i8 %orig, i8 %alt
221221 store i8 %res, i8 *%ptr
222222 ret void
234234 ; CHECK: br %r14
235235 %ptr = getelementptr i8, i8 *%base, i64 524288
236236 %cond = icmp ult i32 %limit, 420
237 %orig = load i8 , i8 *%ptr
237 %orig = load i8, i8 *%ptr
238238 %res = select i1 %cond, i8 %orig, i8 %alt
239239 store i8 %res, i8 *%ptr
240240 ret void
250250 ; CHECK: br %r14
251251 %ptr = getelementptr i8, i8 *%base, i64 -524288
252252 %cond = icmp ult i32 %limit, 420
253 %orig = load i8 , i8 *%ptr
253 %orig = load i8, i8 *%ptr
254254 %res = select i1 %cond, i8 %orig, i8 %alt
255255 store i8 %res, i8 *%ptr
256256 ret void
268268 ; CHECK: br %r14
269269 %ptr = getelementptr i8, i8 *%base, i64 -524289
270270 %cond = icmp ult i32 %limit, 420
271 %orig = load i8 , i8 *%ptr
271 %orig = load i8, i8 *%ptr
272272 %res = select i1 %cond, i8 %orig, i8 %alt
273273 store i8 %res, i8 *%ptr
274274 ret void
286286 %add2 = add i64 %add1, 4096
287287 %ptr = inttoptr i64 %add2 to i8 *
288288 %cond = icmp ult i32 %limit, 420
289 %orig = load i8 , i8 *%ptr
289 %orig = load i8, i8 *%ptr
290290 %res = select i1 %cond, i8 %orig, i8 %alt
291291 store i8 %res, i8 *%ptr
292292 ret void
301301 ; CHECK: stc {{%r[0-5]}}, 0(%r2)
302302 ; CHECK: br %r14
303303 %cond = icmp ult i32 %limit, 420
304 %orig = load volatile i8 , i8 *%ptr
304 %orig = load volatile i8, i8 *%ptr
305305 %res = select i1 %cond, i8 %orig, i8 %alt
306306 store i8 %res, i8 *%ptr
307307 ret void
316316 ; CHECK: stc %r3, 0(%r2)
317317 ; CHECK: br %r14
318318 %cond = icmp ult i32 %limit, 420
319 %orig = load i8 , i8 *%ptr
319 %orig = load i8, i8 *%ptr
320320 %res = select i1 %cond, i8 %orig, i8 %alt
321321 store volatile i8 %res, i8 *%ptr
322322 ret void
335335 ; CHECK: stc {{%r[0-9]+}}, 0(%r2)
336336 ; CHECK: br %r14
337337 %cond = icmp ult i32 %limit, 420
338 %orig = load atomic i8 , i8 *%ptr unordered, align 1
338 %orig = load atomic i8, i8 *%ptr unordered, align 1
339339 %res = select i1 %cond, i8 %orig, i8 %alt
340340 store i8 %res, i8 *%ptr
341341 ret void
351351 ; CHECK: stc %r3, 0(%r2)
352352 ; CHECK: br %r14
353353 %cond = icmp ult i32 %limit, 420
354 %orig = load i8 , i8 *%ptr
354 %orig = load i8, i8 *%ptr
355355 %res = select i1 %cond, i8 %orig, i8 %alt
356356 store atomic i8 %res, i8 *%ptr unordered, align 1
357357 ret void
371371 %ptr = alloca i8
372372 call void @foo(i8 *%ptr)
373373 %cond = icmp ult i32 %limit, 420
374 %orig = load i8 , i8 *%ptr
374 %orig = load i8, i8 *%ptr
375375 %res = select i1 %cond, i8 %orig, i8 %alt
376376 store i8 %res, i8 *%ptr
377377 call void @foo(i8 *%ptr)
1313 ; CHECK: sth %r3, 0(%r2)
1414 ; CHECK: br %r14
1515 %cond = icmp ult i32 %limit, 420
16 %orig = load i16 , i16 *%ptr
16 %orig = load i16, i16 *%ptr
1717 %res = select i1 %cond, i16 %orig, i16 %alt
1818 store i16 %res, i16 *%ptr
1919 ret void
2828 ; CHECK: sth %r3, 0(%r2)
2929 ; CHECK: br %r14
3030 %cond = icmp ult i32 %limit, 420
31 %orig = load i16 , i16 *%ptr
31 %orig = load i16, i16 *%ptr
3232 %res = select i1 %cond, i16 %alt, i16 %orig
3333 store i16 %res, i16 *%ptr
3434 ret void
4444 ; CHECK: sth %r3, 0(%r2)
4545 ; CHECK: br %r14
4646 %cond = icmp ult i32 %limit, 420
47 %orig = load i16 , i16 *%ptr
47 %orig = load i16, i16 *%ptr
4848 %ext = sext i16 %orig to i32
4949 %res = select i1 %cond, i32 %ext, i32 %alt
5050 %trunc = trunc i32 %res to i16
6161 ; CHECK: sth %r3, 0(%r2)
6262 ; CHECK: br %r14
6363 %cond = icmp ult i32 %limit, 420
64 %orig = load i16 , i16 *%ptr
64 %orig = load i16, i16 *%ptr
6565 %ext = sext i16 %orig to i32
6666 %res = select i1 %cond, i32 %alt, i32 %ext
6767 %trunc = trunc i32 %res to i16
7979 ; CHECK: sth %r3, 0(%r2)
8080 ; CHECK: br %r14
8181 %cond = icmp ult i32 %limit, 420
82 %orig = load i16 , i16 *%ptr
82 %orig = load i16, i16 *%ptr
8383 %ext = zext i16 %orig to i32
8484 %res = select i1 %cond, i32 %ext, i32 %alt
8585 %trunc = trunc i32 %res to i16
9696 ; CHECK: sth %r3, 0(%r2)
9797 ; CHECK: br %r14
9898 %cond = icmp ult i32 %limit, 420
99 %orig = load i16 , i16 *%ptr
99 %orig = load i16, i16 *%ptr
100100 %ext = zext i16 %orig to i32
101101 %res = select i1 %cond, i32 %alt, i32 %ext
102102 %trunc = trunc i32 %res to i16
114114 ; CHECK: sth %r3, 0(%r2)
115115 ; CHECK: br %r14
116116 %cond = icmp ult i32 %limit, 420
117 %orig = load i16 , i16 *%ptr
117 %orig = load i16, i16 *%ptr
118118 %ext = sext i16 %orig to i64
119119 %res = select i1 %cond, i64 %ext, i64 %alt
120120 %trunc = trunc i64 %res to i16
131131 ; CHECK: sth %r3, 0(%r2)
132132 ; CHECK: br %r14
133133 %cond = icmp ult i32 %limit, 420
134 %orig = load i16 , i16 *%ptr
134 %orig = load i16, i16 *%ptr
135135 %ext = sext i16 %orig to i64
136136 %res = select i1 %cond, i64 %alt, i64 %ext
137137 %trunc = trunc i64 %res to i16
149149 ; CHECK: sth %r3, 0(%r2)
150150 ; CHECK: br %r14
151151 %cond = icmp ult i32 %limit, 420
152 %orig = load i16 , i16 *%ptr
152 %orig = load i16, i16 *%ptr
153153 %ext = zext i16 %orig to i64
154154 %res = select i1 %cond, i64 %ext, i64 %alt
155155 %trunc = trunc i64 %res to i16
166166 ; CHECK: sth %r3, 0(%r2)
167167 ; CHECK: br %r14
168168 %cond = icmp ult i32 %limit, 420
169 %orig = load i16 , i16 *%ptr
169 %orig = load i16, i16 *%ptr
170170 %ext = zext i16 %orig to i64
171171 %res = select i1 %cond, i64 %alt, i64 %ext
172172 %trunc = trunc i64 %res to i16
184184 ; CHECK: br %r14
185185 %ptr = getelementptr i16, i16 *%base, i64 2047
186186 %cond = icmp ult i32 %limit, 420
187 %orig = load i16 , i16 *%ptr
187 %orig = load i16, i16 *%ptr
188188 %res = select i1 %cond, i16 %orig, i16 %alt
189189 store i16 %res, i16 *%ptr
190190 ret void
200200 ; CHECK: br %r14
201201 %ptr = getelementptr i16, i16 *%base, i64 2048
202202 %cond = icmp ult i32 %limit, 420
203 %orig = load i16 , i16 *%ptr
203 %orig = load i16, i16 *%ptr
204204 %res = select i1 %cond, i16 %orig, i16 %alt
205205 store i16 %res, i16 *%ptr
206206 ret void
216216 ; CHECK: br %r14
217217 %ptr = getelementptr i16, i16 *%base, i64 262143
218218 %cond = icmp ult i32 %limit, 420
219 %orig = load i16 , i16 *%ptr
219 %orig = load i16, i16 *%ptr
220220 %res = select i1 %cond, i16 %orig, i16 %alt
221221 store i16 %res, i16 *%ptr
222222 ret void
234234 ; CHECK: br %r14
235235 %ptr = getelementptr i16, i16 *%base, i64 262144
236236 %cond = icmp ult i32 %limit, 420
237 %orig = load i16 , i16 *%ptr
237 %orig = load i16, i16 *%ptr
238238 %res = select i1 %cond, i16 %orig, i16 %alt
239239 store i16 %res, i16 *%ptr
240240 ret void
250250 ; CHECK: br %r14
251251 %ptr = getelementptr i16, i16 *%base, i64 -262144
252252 %cond = icmp ult i32 %limit, 420
253 %orig = load i16 , i16 *%ptr
253 %orig = load i16, i16 *%ptr
254254 %res = select i1 %cond, i16 %orig, i16 %alt
255255 store i16 %res, i16 *%ptr
256256 ret void
268268 ; CHECK: br %r14
269269 %ptr = getelementptr i16, i16 *%base, i64 -262145
270270 %cond = icmp ult i32 %limit, 420
271 %orig = load i16 , i16 *%ptr
271 %orig = load i16, i16 *%ptr
272272 %res = select i1 %cond, i16 %orig, i16 %alt
273273 store i16 %res, i16 *%ptr
274274 ret void
286286 %add2 = add i64 %add1, 4096
287287 %ptr = inttoptr i64 %add2 to i16 *
288288 %cond = icmp ult i32 %limit, 420
289 %orig = load i16 , i16 *%ptr
289 %orig = load i16, i16 *%ptr
290290 %res = select i1 %cond, i16 %orig, i16 %alt
291291 store i16 %res, i16 *%ptr
292292 ret void
301301 ; CHECK: sth {{%r[0-5]}}, 0(%r2)
302302 ; CHECK: br %r14
303303 %cond = icmp ult i32 %limit, 420
304 %orig = load volatile i16 , i16 *%ptr
304 %orig = load volatile i16, i16 *%ptr
305305 %res = select i1 %cond, i16 %orig, i16 %alt
306306 store i16 %res, i16 *%ptr
307307 ret void
316316 ; CHECK: sth %r3, 0(%r2)
317317 ; CHECK: br %r14
318318 %cond = icmp ult i32 %limit, 420
319 %orig = load i16 , i16 *%ptr
319 %orig = load i16, i16 *%ptr
320320 %res = select i1 %cond, i16 %orig, i16 %alt
321321 store volatile i16 %res, i16 *%ptr
322322 ret void
335335 ; CHECK: sth {{%r[0-9]+}}, 0(%r2)
336336 ; CHECK: br %r14
337337 %cond = icmp ult i32 %limit, 420
338 %orig = load atomic i16 , i16 *%ptr unordered, align 2
338 %orig = load atomic i16, i16 *%ptr unordered, align 2
339339 %res = select i1 %cond, i16 %orig, i16 %alt
340340 store i16 %res, i16 *%ptr
341341 ret void
351351 ; CHECK: sth %r3, 0(%r2)
352352 ; CHECK: br %r14
353353 %cond = icmp ult i32 %limit, 420
354 %orig = load i16 , i16 *%ptr
354 %orig = load i16, i16 *%ptr
355355 %res = select i1 %cond, i16 %orig, i16 %alt
356356 store atomic i16 %res, i16 *%ptr unordered, align 2
357357 ret void
371371 %ptr = alloca i16
372372 call void @foo(i16 *%ptr)
373373 %cond = icmp ult i32 %limit, 420
374 %orig = load i16 , i16 *%ptr
374 %orig = load i16, i16 *%ptr
375375 %res = select i1 %cond, i16 %orig, i16 %alt
376376 store i16 %res, i16 *%ptr
377377 call void @foo(i16 *%ptr)
1212 ; CHECK: st %r3, 0(%r2)
1313 ; CHECK: br %r14
1414 %cond = icmp ult i32 %limit, 420
15 %orig = load i32 , i32 *%ptr
15 %orig = load i32, i32 *%ptr
1616 %res = select i1 %cond, i32 %orig, i32 %alt
1717 store i32 %res, i32 *%ptr
1818 ret void
2727 ; CHECK: st %r3, 0(%r2)
2828 ; CHECK: br %r14
2929 %cond = icmp ult i32 %limit, 420
30 %orig = load i32 , i32 *%ptr
30 %orig = load i32, i32 *%ptr
3131 %res = select i1 %cond, i32 %alt, i32 %orig
3232 store i32 %res, i32 *%ptr
3333 ret void
4343 ; CHECK: st %r3, 0(%r2)
4444 ; CHECK: br %r14
4545 %cond = icmp ult i32 %limit, 420
46 %orig = load i32 , i32 *%ptr
46 %orig = load i32, i32 *%ptr
4747 %ext = sext i32 %orig to i64
4848 %res = select i1 %cond, i64 %ext, i64 %alt
4949 %trunc = trunc i64 %res to i32
6060 ; CHECK: st %r3, 0(%r2)
6161 ; CHECK: br %r14
6262 %cond = icmp ult i32 %limit, 420
63 %orig = load i32 , i32 *%ptr
63 %orig = load i32, i32 *%ptr
6464 %ext = sext i32 %orig to i64
6565 %res = select i1 %cond, i64 %alt, i64 %ext
6666 %trunc = trunc i64 %res to i32
7878 ; CHECK: st %r3, 0(%r2)
7979 ; CHECK: br %r14
8080 %cond = icmp ult i32 %limit, 420
81 %orig = load i32 , i32 *%ptr
81 %orig = load i32, i32 *%ptr
8282 %ext = zext i32 %orig to i64
8383 %res = select i1 %cond, i64 %ext, i64 %alt
8484 %trunc = trunc i64 %res to i32
9595 ; CHECK: st %r3, 0(%r2)
9696 ; CHECK: br %r14
9797 %cond = icmp ult i32 %limit, 420
98 %orig = load i32 , i32 *%ptr
98 %orig = load i32, i32 *%ptr
9999 %ext = zext i32 %orig to i64
100100 %res = select i1 %cond, i64 %alt, i64 %ext
101101 %trunc = trunc i64 %res to i32
113113 ; CHECK: br %r14
114114 %ptr = getelementptr i32, i32 *%base, i64 1023
115115 %cond = icmp ult i32 %limit, 420
116 %orig = load i32 , i32 *%ptr
116 %orig = load i32, i32 *%ptr
117117 %res = select i1 %cond, i32 %orig, i32 %alt
118118 store i32 %res, i32 *%ptr
119119 ret void
129129 ; CHECK: br %r14
130130 %ptr = getelementptr i32, i32 *%base, i64 1024
131131 %cond = icmp ult i32 %limit, 420
132 %orig = load i32 , i32 *%ptr
132 %orig = load i32, i32 *%ptr
133133 %res = select i1 %cond, i32 %orig, i32 %alt
134134 store i32 %res, i32 *%ptr
135135 ret void
145145 ; CHECK: br %r14
146146 %ptr = getelementptr i32, i32 *%base, i64 131071
147147 %cond = icmp ult i32 %limit, 420
148 %orig = load i32 , i32 *%ptr
148 %orig = load i32, i32 *%ptr
149149 %res = select i1 %cond, i32 %orig, i32 %alt
150150 store i32 %res, i32 *%ptr
151151 ret void
163163 ; CHECK: br %r14
164164 %ptr = getelementptr i32, i32 *%base, i64 131072
165165 %cond = icmp ult i32 %limit, 420
166 %orig = load i32 , i32 *%ptr
166 %orig = load i32, i32 *%ptr
167167 %res = select i1 %cond, i32 %orig, i32 %alt
168168 store i32 %res, i32 *%ptr
169169 ret void
179179 ; CHECK: br %r14
180180 %ptr = getelementptr i32, i32 *%base, i64 -131072
181181 %cond = icmp ult i32 %limit, 420
182 %orig = load i32 , i32 *%ptr
182 %orig = load i32, i32 *%ptr
183183 %res = select i1 %cond, i32 %orig, i32 %alt
184184 store i32 %res, i32 *%ptr
185185 ret void
197197 ; CHECK: br %r14
198198 %ptr = getelementptr i32, i32 *%base, i64 -131073
199199 %cond = icmp ult i32 %limit, 420
200 %orig = load i32 , i32 *%ptr
200 %orig = load i32, i32 *%ptr
201201 %res = select i1 %cond, i32 %orig, i32 %alt
202202 store i32 %res, i32 *%ptr
203203 ret void
215215 %add2 = add i64 %add1, 4096
216216 %ptr = inttoptr i64 %add2 to i32 *
217217 %cond = icmp ult i32 %limit, 420
218 %orig = load i32 , i32 *%ptr
218 %orig = load i32, i32 *%ptr
219219 %res = select i1 %cond, i32 %orig, i32 %alt
220220 store i32 %res, i32 *%ptr
221221 ret void
230230 ; CHECK: st {{%r[0-5]}}, 0(%r2)
231231 ; CHECK: br %r14
232232 %cond = icmp ult i32 %limit, 420
233 %orig = load volatile i32 , i32 *%ptr
233 %orig = load volatile i32, i32 *%ptr
234234 %res = select i1 %cond, i32 %orig, i32 %alt
235235 store i32 %res, i32 *%ptr
236236 ret void
245245 ; CHECK: st %r3, 0(%r2)
246246 ; CHECK: br %r14
247247 %cond = icmp ult i32 %limit, 420
248 %orig = load i32 , i32 *%ptr
248 %orig = load i32, i32 *%ptr
249249 %res = select i1 %cond, i32 %orig, i32 %alt
250250 store volatile i32 %res, i32 *%ptr
251251 ret void
264264 ; CHECK: st {{%r[0-5]}}, 0(%r2)
265265 ; CHECK: br %r14
266266 %cond = icmp ult i32 %limit, 420
267 %orig = load atomic i32 , i32 *%ptr unordered, align 4
267 %orig = load atomic i32, i32 *%ptr unordered, align 4
268268 %res = select i1 %cond, i32 %orig, i32 %alt
269269 store i32 %res, i32 *%ptr
270270 ret void
280280 ; CHECK: st %r3, 0(%r2)
281281 ; CHECK: br %r14
282282 %cond = icmp ult i32 %limit, 420
283 %orig = load i32 , i32 *%ptr
283 %orig = load i32, i32 *%ptr
284284 %res = select i1 %cond, i32 %orig, i32 %alt
285285 store atomic i32 %res, i32 *%ptr unordered, align 4
286286 ret void
300300 %ptr = alloca i32
301301 call void @foo(i32 *%ptr)
302302 %cond = icmp ult i32 %limit, 420
303 %orig = load i32 , i32 *%ptr
303 %orig = load i32, i32 *%ptr
304304 %res = select i1 %cond, i32 %orig, i32 %alt
305305 store i32 %res, i32 *%ptr
306306 call void @foo(i32 *%ptr)
1212 ; CHECK: stg %r3, 0(%r2)
1313 ; CHECK: br %r14
1414 %cond = icmp ult i32 %limit, 420
15 %orig = load i64 , i64 *%ptr
15 %orig = load i64, i64 *%ptr
1616 %res = select i1 %cond, i64 %orig, i64 %alt
1717 store i64 %res, i64 *%ptr
1818 ret void
2727 ; CHECK: stg %r3, 0(%r2)
2828 ; CHECK: br %r14
2929 %cond = icmp ult i32 %limit, 420
30 %orig = load i64 , i64 *%ptr
30 %orig = load i64, i64 *%ptr
3131 %res = select i1 %cond, i64 %alt, i64 %orig
3232 store i64 %res, i64 *%ptr
3333 ret void
4343 ; CHECK: br %r14
4444 %ptr = getelementptr i64, i64 *%base, i64 65535
4545 %cond = icmp ult i32 %limit, 420
46 %orig = load i64 , i64 *%ptr
46 %orig = load i64, i64 *%ptr
4747 %res = select i1 %cond, i64 %orig, i64 %alt
4848 store i64 %res, i64 *%ptr
4949 ret void
6161 ; CHECK: br %r14
6262 %ptr = getelementptr i64, i64 *%base, i64 65536
6363 %cond = icmp ult i32 %limit, 420
64 %orig = load i64 , i64 *%ptr
64 %orig = load i64, i64 *%ptr
6565 %res = select i1 %cond, i64 %orig, i64 %alt
6666 store i64 %res, i64 *%ptr
6767 ret void
7777 ; CHECK: br %r14
7878 %ptr = getelementptr i64, i64 *%base, i64 -65536
7979 %cond = icmp ult i32 %limit, 420
80 %orig = load i64 , i64 *%ptr
80 %orig = load i64, i64 *%ptr
8181 %res = select i1 %cond, i64 %orig, i64 %alt
8282 store i64 %res, i64 *%ptr
8383 ret void
9595 ; CHECK: br %r14
9696 %ptr = getelementptr i64, i64 *%base, i64 -65537
9797 %cond = icmp ult i32 %limit, 420
98 %orig = load i64 , i64 *%ptr
98 %orig = load i64, i64 *%ptr
9999 %res = select i1 %cond, i64 %orig, i64 %alt
100100 store i64 %res, i64 *%ptr
101101 ret void
113113 %add2 = add i64 %add1, 524287
114114 %ptr = inttoptr i64 %add2 to i64 *
115115 %cond = icmp ult i32 %limit, 420
116 %orig = load i64 , i64 *%ptr
116 %orig = load i64, i64 *%ptr
117117 %res = select i1 %cond, i64 %orig, i64 %alt
118118 store i64 %res, i64 *%ptr
119119 ret void
128128 ; CHECK: stg {{%r[0-5]}}, 0(%r2)
129129 ; CHECK: br %r14
130130 %cond = icmp ult i32 %limit, 420
131 %orig = load volatile i64 , i64 *%ptr
131 %orig = load volatile i64, i64 *%ptr
132132 %res = select i1 %cond, i64 %orig, i64 %alt
133133 store i64 %res, i64 *%ptr
134134 ret void
143143 ; CHECK: stg %r3, 0(%r2)
144144 ; CHECK: br %r14
145145 %cond = icmp ult i32 %limit, 420
146 %orig = load i64 , i64 *%ptr
146 %orig = load i64, i64 *%ptr
147147 %res = select i1 %cond, i64 %orig, i64 %alt
148148 store volatile i64 %res, i64 *%ptr
149149 ret void
162162 ; CHECK: stg {{%r[0-5]}}, 0(%r2)
163163 ; CHECK: br %r14
164164 %cond = icmp ult i32 %limit, 420
165 %orig = load atomic i64 , i64 *%ptr unordered, align 8
165 %orig = load atomic i64, i64 *%ptr unordered, align 8
166166 %res = select i1 %cond, i64 %orig, i64 %alt
167167 store i64 %res, i64 *%ptr
168168 ret void
178178 ; CHECK: stg %r3, 0(%r2)
179179 ; CHECK: br %r14
180180 %cond = icmp ult i32 %limit, 420
181 %orig = load i64 , i64 *%ptr
181 %orig = load i64, i64 *%ptr
182182 %res = select i1 %cond, i64 %orig, i64 %alt
183183 store atomic i64 %res, i64 *%ptr unordered, align 8
184184 ret void
198198 %ptr = alloca i64
199199 call void @foo(i64 *%ptr)
200200 %cond = icmp ult i32 %limit, 420
201 %orig = load i64 , i64 *%ptr
201 %orig = load i64, i64 *%ptr
202202 %res = select i1 %cond, i64 %orig, i64 %alt
203203 store i64 %res, i64 *%ptr
204204 call void @foo(i64 *%ptr)
1212 ; CHECK: ste %f0, 0(%r2)
1313 ; CHECK: br %r14
1414 %cond = icmp ult i32 %limit, 420
15 %orig = load float , float *%ptr
15 %orig = load float, float *%ptr
1616 %res = select i1 %cond, float %orig, float %alt
1717 store float %res, float *%ptr
1818 ret void
2727 ; CHECK: ste %f0, 0(%r2)
2828 ; CHECK: br %r14
2929 %cond = icmp ult i32 %limit, 420
30 %orig = load float , float *%ptr
30 %orig = load float, float *%ptr
3131 %res = select i1 %cond, float %alt, float %orig
3232 store float %res, float *%ptr
3333 ret void
4343 ; CHECK: br %r14
4444 %ptr = getelementptr float, float *%base, i64 1023
4545 %cond = icmp ult i32 %limit, 420
46 %orig = load float , float *%ptr
46 %orig = load float, float *%ptr
4747 %res = select i1 %cond, float %orig, float %alt
4848 store float %res, float *%ptr
4949 ret void
5959 ; CHECK: br %r14
6060 %ptr = getelementptr float, float *%base, i64 1024
6161 %cond = icmp ult i32 %limit, 420
62 %orig = load float , float *%ptr
62 %orig = load float, float *%ptr
6363 %res = select i1 %cond, float %orig, float %alt
6464 store float %res, float *%ptr
6565 ret void
7575 ; CHECK: br %r14
7676 %ptr = getelementptr float, float *%base, i64 131071
7777 %cond = icmp ult i32 %limit, 420
78 %orig = load float , float *%ptr
78 %orig = load float, float *%ptr
7979 %res = select i1 %cond, float %orig, float %alt
8080 store float %res, float *%ptr
8181 ret void
9393 ; CHECK: br %r14
9494 %ptr = getelementptr float, float *%base, i64 131072
9595 %cond = icmp ult i32 %limit, 420
96 %orig = load float , float *%ptr
96 %orig = load float, float *%ptr
9797 %res = select i1 %cond, float %orig, float %alt
9898 store float %res, float *%ptr
9999 ret void
109109 ; CHECK: br %r14
110110 %ptr = getelementptr float, float *%base, i64 -131072
111111 %cond = icmp ult i32 %limit, 420
112 %orig = load float , float *%ptr
112 %orig = load float, float *%ptr
113113 %res = select i1 %cond, float %orig, float %alt
114114 store float %res, float *%ptr
115115 ret void
127127 ; CHECK: br %r14
128128 %ptr = getelementptr float, float *%base, i64 -131073
129129 %cond = icmp ult i32 %limit, 420
130 %orig = load float , float *%ptr
130 %orig = load float, float *%ptr
131131 %res = select i1 %cond, float %orig, float %alt
132132 store float %res, float *%ptr
133133 ret void
145145 %add2 = add i64 %add1, 4096
146146 %ptr = inttoptr i64 %add2 to float *
147147 %cond = icmp ult i32 %limit, 420
148 %orig = load float , float *%ptr
148 %orig = load float, float *%ptr
149149 %res = select i1 %cond, float %orig, float %alt
150150 store float %res, float *%ptr
151151 ret void
160160 ; CHECK: ste {{%f[0-5]}}, 0(%r2)
161161 ; CHECK: br %r14
162162 %cond = icmp ult i32 %limit, 420
163 %orig = load volatile float , float *%ptr
163 %orig = load volatile float, float *%ptr
164164 %res = select i1 %cond, float %orig, float %alt
165165 store float %res, float *%ptr
166166 ret void
175175 ; CHECK: ste %f0, 0(%r2)
176176 ; CHECK: br %r14
177177 %cond = icmp ult i32 %limit, 420
178 %orig = load float , float *%ptr
178 %orig = load float, float *%ptr
179179 %res = select i1 %cond, float %orig, float %alt
180180 store volatile float %res, float *%ptr
181181 ret void
195195 %ptr = alloca float
196196 call void @foo(float *%ptr)
197197 %cond = icmp ult i32 %limit, 420
198 %orig = load float , float *%ptr
198 %orig = load float, float *%ptr
199199 %res = select i1 %cond, float %orig, float %alt
200200 store float %res, float *%ptr
201201 call void @foo(float *%ptr)
1212 ; CHECK: std %f0, 0(%r2)
1313 ; CHECK: br %r14
1414 %cond = icmp ult i32 %limit, 420
15 %orig = load double , double *%ptr
15 %orig = load double, double *%ptr
1616 %res = select i1 %cond, double %orig, double %alt
1717 store double %res, double *%ptr
1818 ret void
2727 ; CHECK: std %f0, 0(%r2)
2828 ; CHECK: br %r14
2929 %cond = icmp ult i32 %limit, 420
30 %orig = load double , double *%ptr
30 %orig = load double, double *%ptr
3131 %res = select i1 %cond, double %alt, double %orig
3232 store double %res, double *%ptr
3333 ret void
4343 ; CHECK: br %r14
4444 %ptr = getelementptr double, double *%base, i64 511
4545 %cond = icmp ult i32 %limit, 420
46 %orig = load double , double *%ptr
46 %orig = load double, double *%ptr
4747 %res = select i1 %cond, double %orig, double %alt
4848 store double %res, double *%ptr
4949 ret void
5959 ; CHECK: br %r14
6060 %ptr = getelementptr double, double *%base, i64 512
6161 %cond = icmp ult i32 %limit, 420
62 %orig = load double , double *%ptr
62 %orig = load double, double *%ptr
6363 %res = select i1 %cond, double %orig, double %alt
6464 store double %res, double *%ptr
6565 ret void
7575 ; CHECK: br %r14
7676 %ptr = getelementptr double, double *%base, i64 65535
7777 %cond = icmp ult i32 %limit, 420
78 %orig = load double , double *%ptr
78 %orig = load double, double *%ptr
7979 %res = select i1 %cond, double %orig, double %alt
8080 store double %res, double *%ptr
8181 ret void
9393 ; CHECK: br %r14
9494 %ptr = getelementptr double, double *%base, i64 65536
9595 %cond = icmp ult i32 %limit, 420
96 %orig = load double , double *%ptr
96 %orig = load double, double *%ptr
9797 %res = select i1 %cond, double %orig, double %alt
9898 store double %res, double *%ptr
9999 ret void
109109 ; CHECK: br %r14
110110 %ptr = getelementptr double, double *%base, i64 -65536
111111 %cond = icmp ult i32 %limit, 420
112 %orig = load double , double *%ptr
112 %orig = load double, double *%ptr
113113 %res = select i1 %cond, double %orig, double %alt
114114 store double %res, double *%ptr
115115 ret void
127127 ; CHECK: br %r14
128128 %ptr = getelementptr double, double *%base, i64 -65537
129129 %cond = icmp ult i32 %limit, 420
130 %orig = load double , double *%ptr
130 %orig = load double, double *%ptr
131131 %res = select i1 %cond, double %orig, double %alt
132132 store double %res, double *%ptr
133133 ret void
145145 %add2 = add i64 %add1, 524287
146146 %ptr = inttoptr i64 %add2 to double *
147147 %cond = icmp ult i32 %limit, 420
148 %orig = load double , double *%ptr
148 %orig = load double, double *%ptr
149149 %res = select i1 %cond, double %orig, double %alt
150150 store double %res, double *%ptr
151151 ret void
160160 ; CHECK: std {{%f[0-5]}}, 0(%r2)
161161 ; CHECK: br %r14
162162 %cond = icmp ult i32 %limit, 420
163 %orig = load volatile double , double *%ptr
163 %orig = load volatile double, double *%ptr
164164 %res = select i1 %cond, double %orig, double %alt
165165 store double %res, double *%ptr
166166 ret void
175175 ; CHECK: std %f0, 0(%r2)
176176 ; CHECK: br %r14
177177 %cond = icmp ult i32 %limit, 420
178 %orig = load double , double *%ptr
178 %orig = load double, double *%ptr
179179 %res = select i1 %cond, double %orig, double %alt
180180 store volatile double %res, double *%ptr
181181 ret void
195195 %ptr = alloca double
196196 call void @foo(double *%ptr)
197197 %cond = icmp ult i32 %limit, 420
198 %orig = load double , double *%ptr
198 %orig = load double, double *%ptr
199199 %res = select i1 %cond, double %orig, double %alt
200200 store double %res, double *%ptr
201201 call void @foo(double *%ptr)
1414 ; CHECK: stoche %r3, 0(%r2)
1515 ; CHECK: br %r14
1616 %cond = icmp ult i32 %limit, 42
17 %orig = load i32 , i32 *%ptr
17 %orig = load i32, i32 *%ptr
1818 %res = select i1 %cond, i32 %orig, i32 %alt
1919 store i32 %res, i32 *%ptr
2020 ret void
2727 ; CHECK: stocl %r3, 0(%r2)
2828 ; CHECK: br %r14
2929 %cond = icmp ult i32 %limit, 42
30 %orig = load i32 , i32 *%ptr
30 %orig = load i32, i32 *%ptr
3131 %res = select i1 %cond, i32 %alt, i32 %orig
3232 store i32 %res, i32 *%ptr
3333 ret void
4141 ; CHECK: stoche %r3, 0(%r2)
4242 ; CHECK: br %r14
4343 %cond = icmp ult i32 %limit, 42
44 %orig = load i32 , i32 *%ptr
44 %orig = load i32, i32 *%ptr
4545 %ext = sext i32 %orig to i64
4646 %res = select i1 %cond, i64 %ext, i64 %alt
4747 %trunc = trunc i64 %res to i32
5656 ; CHECK: stocl %r3, 0(%r2)
5757 ; CHECK: br %r14
5858 %cond = icmp ult i32 %limit, 42
59 %orig = load i32 , i32 *%ptr
59 %orig = load i32, i32 *%ptr
6060 %ext = sext i32 %orig to i64
6161 %res = select i1 %cond, i64 %alt, i64 %ext
6262 %trunc = trunc i64 %res to i32
7272 ; CHECK: stoche %r3, 0(%r2)
7373 ; CHECK: br %r14
7474 %cond = icmp ult i32 %limit, 42
75 %orig = load i32 , i32 *%ptr
75 %orig = load i32, i32 *%ptr
7676 %ext = zext i32 %orig to i64
7777 %res = select i1 %cond, i64 %ext, i64 %alt
7878 %trunc = trunc i64 %res to i32
8787 ; CHECK: stocl %r3, 0(%r2)
8888 ; CHECK: br %r14
8989 %cond = icmp ult i32 %limit, 42
90 %orig = load i32 , i32 *%ptr
90 %orig = load i32, i32 *%ptr
9191 %ext = zext i32 %orig to i64
9292 %res = select i1 %cond, i64 %alt, i64 %ext
9393 %trunc = trunc i64 %res to i32
103103 ; CHECK: br %r14
104104 %ptr = getelementptr i32, i32 *%base, i64 131071
105105 %cond = icmp ult i32 %limit, 42
106 %orig = load i32 , i32 *%ptr
106 %orig = load i32, i32 *%ptr
107107 %res = select i1 %cond, i32 %orig, i32 %alt
108108 store i32 %res, i32 *%ptr
109109 ret void
118118 ; CHECK: br %r14
119119 %ptr = getelementptr i32, i32 *%base, i64 131072
120120 %cond = icmp ult i32 %limit, 42
121 %orig = load i32 , i32 *%ptr
121 %orig = load i32, i32 *%ptr
122122 %res = select i1 %cond, i32 %orig, i32 %alt
123123 store i32 %res, i32 *%ptr
124124 ret void
132132 ; CHECK: br %r14
133133 %ptr = getelementptr i32, i32 *%base, i64 -131072
134134 %cond = icmp ult i32 %limit, 42
135 %orig = load i32 , i32 *%ptr
135 %orig = load i32, i32 *%ptr
136136 %res = select i1 %cond, i32 %orig, i32 %alt
137137 store i32 %res, i32 *%ptr
138138 ret void
147147 ; CHECK: br %r14
148148 %ptr = getelementptr i32, i32 *%base, i64 -131073
149149 %cond = icmp ult i32 %limit, 42
150 %orig = load i32 , i32 *%ptr
150 %orig = load i32, i32 *%ptr
151151 %res = select i1 %cond, i32 %orig, i32 %alt
152152 store i32 %res, i32 *%ptr
153153 ret void
163163 %ptr = alloca i32
164164 call void @foo(i32 *%ptr)
165165 %cond = icmp ult i32 %limit, 42
166 %orig = load i32 , i32 *%ptr
166 %orig = load i32, i32 *%ptr
167167 %res = select i1 %cond, i32 %orig, i32 %alt
168168 store i32 %res, i32 *%ptr
169169 call void @foo(i32 *%ptr)
1010 ; CHECK: stocghe %r3, 0(%r2)
1111 ; CHECK: br %r14
1212 %cond = icmp ult i32 %limit, 42
13 %orig = load i64 , i64 *%ptr
13 %orig = load i64, i64 *%ptr
1414 %res = select i1 %cond, i64 %orig, i64 %alt
1515 store i64 %res, i64 *%ptr
1616 ret void
2323 ; CHECK: stocgl %r3, 0(%r2)
2424 ; CHECK: br %r14
2525 %cond = icmp ult i32 %limit, 42
26 %orig = load i64 , i64 *%ptr
26 %orig = load i64, i64 *%ptr
2727 %res = select i1 %cond, i64 %alt, i64 %orig
2828 store i64 %res, i64 *%ptr
2929 ret void
3737 ; CHECK: br %r14
3838 %ptr = getelementptr i64, i64 *%base, i64 65535
3939 %cond = icmp ult i32 %limit, 42
40 %orig = load i64 , i64 *%ptr
40 %orig = load i64, i64 *%ptr
4141 %res = select i1 %cond, i64 %orig, i64 %alt
4242 store i64 %res, i64 *%ptr
4343 ret void
5252 ; CHECK: br %r14
5353 %ptr = getelementptr i64, i64 *%base, i64 65536
5454 %cond = icmp ult i32 %limit, 42
55 %orig = load i64 , i64 *%ptr
55 %orig = load i64, i64 *%ptr
5656 %res = select i1 %cond, i64 %orig, i64 %alt
5757 store i64 %res, i64 *%ptr
5858 ret void
6666 ; CHECK: br %r14
6767 %ptr = getelementptr i64, i64 *%base, i64 -65536
6868 %cond = icmp ult i32 %limit, 42
69 %orig = load i64 , i64 *%ptr
69 %orig = load i64, i64 *%ptr
7070 %res = select i1 %cond, i64 %orig, i64 %alt
7171 store i64 %res, i64 *%ptr
7272 ret void
8181 ; CHECK: br %r14
8282 %ptr = getelementptr i64, i64 *%base, i64 -65537
8383 %cond = icmp ult i32 %limit, 42
84 %orig = load i64 , i64 *%ptr
84 %orig = load i64, i64 *%ptr
8585 %res = select i1 %cond, i64 %orig, i64 %alt
8686 store i64 %res, i64 *%ptr
8787 ret void
9797 %ptr = alloca i64
9898 call void @foo(i64 *%ptr)
9999 %cond = icmp ult i32 %limit, 42
100 %orig = load i64 , i64 *%ptr
100 %orig = load i64, i64 *%ptr
101101 %res = select i1 %cond, i64 %orig, i64 %alt
102102 store i64 %res, i64 *%ptr
103103 call void @foo(i64 *%ptr)
3131 ; CHECK: lpxbr
3232 ; CHECK: dxbr
3333 ; CHECK: br %r14
34 %orig = load fp128 , fp128 *%ptr
34 %orig = load fp128, fp128 *%ptr
3535 %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
36 %op2 = load fp128 , fp128 *%ptr2
36 %op2 = load fp128, fp128 *%ptr2
3737 %res = fdiv fp128 %abs, %op2
3838 store fp128 %res, fp128 *%ptr
3939 ret void
3333 ; CHECK: lnxbr
3434 ; CHECK: dxbr
3535 ; CHECK: br %r14
36 %orig = load fp128 , fp128 *%ptr
36 %orig = load fp128, fp128 *%ptr
3737 %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
3838 %negabs = fsub fp128 0xL00000000000000008000000000000000, %abs
39 %op2 = load fp128 , fp128 *%ptr2
39 %op2 = load fp128, fp128 *%ptr2
4040 %res = fdiv fp128 %negabs, %op2
4141 store fp128 %res, fp128 *%ptr
4242 ret void
3333 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[POSREG1]], [[REG2]]
3434 ; CHECK: vst [[RES]], 0(%r2)
3535 ; CHECK: br %r14
36 %orig = load fp128 , fp128 *%ptr
36 %orig = load fp128, fp128 *%ptr
3737 %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
38 %op2 = load fp128 , fp128 *%ptr2
38 %op2 = load fp128, fp128 *%ptr2
3939 %res = fdiv fp128 %abs, %op2
4040 store fp128 %res, fp128 *%ptr
4141 ret void
3535 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[NEGREG1]], [[REG2]]
3636 ; CHECK: vst [[RES]], 0(%r2)
3737 ; CHECK: br %r14
38 %orig = load fp128 , fp128 *%ptr
38 %orig = load fp128, fp128 *%ptr
3939 %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
4040 %negabs = fsub fp128 0xL00000000000000008000000000000000, %abs
41 %op2 = load fp128 , fp128 *%ptr2
41 %op2 = load fp128, fp128 *%ptr2
4242 %res = fdiv fp128 %negabs, %op2
4343 store fp128 %res, fp128 *%ptr
4444 ret void
1919 ; CHECK-LABEL: f2:
2020 ; CHECK: aeb %f0, 0(%r2)
2121 ; CHECK: br %r14
22 %f2 = load float , float *%ptr
22 %f2 = load float, float *%ptr
2323 %res = fadd float %f1, %f2
2424 ret float %res
2525 }
3030 ; CHECK: aeb %f0, 4092(%r2)
3131 ; CHECK: br %r14
3232 %ptr = getelementptr float, float *%base, i64 1023
33 %f2 = load float , float *%ptr
33 %f2 = load float, float *%ptr
3434 %res = fadd float %f1, %f2
3535 ret float %res
3636 }
4343 ; CHECK: aeb %f0, 0(%r2)
4444 ; CHECK: br %r14
4545 %ptr = getelementptr float, float *%base, i64 1024
46 %f2 = load float , float *%ptr
46 %f2 = load float, float *%ptr
4747 %res = fadd float %f1, %f2
4848 ret float %res
4949 }
5555 ; CHECK: aeb %f0, 0(%r2)
5656 ; CHECK: br %r14
5757 %ptr = getelementptr float, float *%base, i64 -1
58 %f2 = load float , float *%ptr
58 %f2 = load float, float *%ptr
5959 %res = fadd float %f1, %f2
6060 ret float %res
6161 }
6868 ; CHECK: br %r14
6969 %ptr1 = getelementptr float, float *%base, i64 %index
7070 %ptr2 = getelementptr float, float *%ptr1, i64 100
71 %f2 = load float , float *%ptr2
71 %f2 = load float, float *%ptr2
7272 %res = fadd float %f1, %f2
7373 ret float %res
7474 }
9090 %ptr9 = getelementptr float, float *%ptr0, i64 18
9191 %ptr10 = getelementptr float, float *%ptr0, i64 20
9292
93 %val0 = load float , float *%ptr0
94 %val1 = load float , float *%ptr1
95 %val2 = load float , float *%ptr2
96 %val3 = load float , float *%ptr3
97 %val4 = load float , float *%ptr4
98 %val5 = load float , float *%ptr5
99 %val6 = load float , float *%ptr6
100 %val7 = load float , float *%ptr7
101 %val8 = load float , float *%ptr8
102 %val9 = load float , float *%ptr9
103 %val10 = load float , float *%ptr10
93 %val0 = load float, float *%ptr0
94 %val1 = load float, float *%ptr1
95 %val2 = load float, float *%ptr2
96 %val3 = load float, float *%ptr3
97 %val4 = load float, float *%ptr4
98 %val5 = load float, float *%ptr5
99 %val6 = load float, float *%ptr6
100 %val7 = load float, float *%ptr7
101 %val8 = load float, float *%ptr8
102 %val9 = load float, float *%ptr9
103 %val10 = load float, float *%ptr10
104104
105105 %ret = call float @foo()
106106
1818 ; CHECK-LABEL: f2:
1919 ; CHECK: adb %f0, 0(%r2)
2020 ; CHECK: br %r14
21 %f2 = load double , double *%ptr
21 %f2 = load double, double *%ptr
2222 %res = fadd double %f1, %f2
2323 ret double %res
2424 }
2929 ; CHECK: adb %f0, 4088(%r2)
3030 ; CHECK: br %r14
3131 %ptr = getelementptr double, double *%base, i64 511
32 %f2 = load double , double *%ptr
32 %f2 = load double, double *%ptr
3333 %res = fadd double %f1, %f2
3434 ret double %res
3535 }
4242 ; CHECK: adb %f0, 0(%r2)
4343 ; CHECK: br %r14
4444 %ptr = getelementptr double, double *%base, i64 512
45 %f2 = load double , double *%ptr
45 %f2 = load double, double *%ptr
4646 %res = fadd double %f1, %f2
4747 ret double %res
4848 }
5454 ; CHECK: adb %f0, 0(%r2)
5555 ; CHECK: br %r14
5656 %ptr = getelementptr double, double *%base, i64 -1
57 %f2 = load double , double *%ptr
57 %f2 = load double, double *%ptr
5858 %res = fadd double %f1, %f2
5959 ret double %res
6060 }
6767 ; CHECK: br %r14
6868 %ptr1 = getelementptr double, double *%base, i64 %index
6969 %ptr2 = getelementptr double, double *%ptr1, i64 100
70 %f2 = load double , double *%ptr2
70 %f2 = load double, double *%ptr2
7171 %res = fadd double %f1, %f2
7272 ret double %res
7373 }
8989 %ptr9 = getelementptr double, double *%ptr0, i64 18
9090 %ptr10 = getelementptr double, double *%ptr0, i64 20
9191
92 %val0 = load double , double *%ptr0
93 %val1 = load double , double *%ptr1
94 %val2 = load double , double *%ptr2
95 %val3 = load double , double *%ptr3
96 %val4 = load double , double *%ptr4
97 %val5 = load double , double *%ptr5
98 %val6 = load double , double *%ptr6
99 %val7 = load double , double *%ptr7
100 %val8 = load double , double *%ptr8
101 %val9 = load double , double *%ptr9
102 %val10 = load double , double *%ptr10
92 %val0 = load double, double *%ptr0
93 %val1 = load double, double *%ptr1
94 %val2 = load double, double *%ptr2
95 %val3 = load double, double *%ptr3
96 %val4 = load double, double *%ptr4
97 %val5 = load double, double *%ptr5
98 %val6 = load double, double *%ptr6
99 %val7 = load double, double *%ptr7
100 %val8 = load double, double *%ptr8
101 %val9 = load double, double *%ptr9
102 %val10 = load double, double *%ptr10
103103
104104 %ret = call double @foo()
105105
1111 ; CHECK: std %f0, 0(%r2)
1212 ; CHECK: std %f2, 8(%r2)
1313 ; CHECK: br %r14
14 %f1 = load fp128 , fp128 *%ptr
14 %f1 = load fp128, fp128 *%ptr
1515 %f2x = fpext float %f2 to fp128
1616 %sum = fadd fp128 %f1, %f2x
1717 store fp128 %sum, fp128 *%ptr
2828 ; CHECK-SCALAR: lgr %r2, %r3
2929 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
3030 ; CHECK: br %r14
31 %f2 = load float , float *%ptr
31 %f2 = load float, float *%ptr
3232 %cond = fcmp oeq float %f1, %f2
3333 %res = select i1 %cond, i64 %a, i64 %b
3434 ret i64 %res
4343 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
4444 ; CHECK: br %r14
4545 %ptr = getelementptr float, float *%base, i64 1023
46 %f2 = load float , float *%ptr
46 %f2 = load float, float *%ptr
4747 %cond = fcmp oeq float %f1, %f2
4848 %res = select i1 %cond, i64 %a, i64 %b
4949 ret i64 %res
6060 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
6161 ; CHECK: br %r14
6262 %ptr = getelementptr float, float *%base, i64 1024
63 %f2 = load float , float *%ptr
63 %f2 = load float, float *%ptr
6464 %cond = fcmp oeq float %f1, %f2
6565 %res = select i1 %cond, i64 %a, i64 %b
6666 ret i64 %res
7676 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
7777 ; CHECK: br %r14
7878 %ptr = getelementptr float, float *%base, i64 -1
79 %f2 = load float , float *%ptr
79 %f2 = load float, float *%ptr
8080 %cond = fcmp oeq float %f1, %f2
8181 %res = select i1 %cond, i64 %a, i64 %b
8282 ret i64 %res
9393 ; CHECK: br %r14
9494 %ptr1 = getelementptr float, float *%base, i64 %index
9595 %ptr2 = getelementptr float, float *%ptr1, i64 100
96 %f2 = load float , float *%ptr2
96 %f2 = load float, float *%ptr2
9797 %cond = fcmp oeq float %f1, %f2
9898 %res = select i1 %cond, i64 %a, i64 %b
9999 ret i64 %res
116116 %ptr9 = getelementptr float, float *%ptr0, i64 18
117117 %ptr10 = getelementptr float, float *%ptr0, i64 20
118118
119 %val0 = load float , float *%ptr0
120 %val1 = load float , float *%ptr1
121 %val2 = load float , float *%ptr2
122 %val3 = load float , float *%ptr3
123 %val4 = load float , float *%ptr4
124 %val5 = load float , float *%ptr5
125 %val6 = load float , float *%ptr6
126 %val7 = load float , float *%ptr7
127 %val8 = load float , float *%ptr8
128 %val9 = load float , float *%ptr9
129 %val10 = load float , float *%ptr10
119 %val0 = load float, float *%ptr0
120 %val1 = load float, float *%ptr1
121 %val2 = load float, float *%ptr2
122 %val3 = load float, float *%ptr3
123 %val4 = load float, float *%ptr4
124 %val5 = load float, float *%ptr5
125 %val6 = load float, float *%ptr6
126 %val7 = load float, float *%ptr7
127 %val8 = load float, float *%ptr8
128 %val9 = load float, float *%ptr9
129 %val10 = load float, float *%ptr10
130130
131131 %ret = call float @foo()
132132
179179 ; CHECK-SCALAR: lgr %r2, %r3
180180 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
181181 ; CHECK: br %r14
182 %f1 = load float , float *%ptr
182 %f1 = load float, float *%ptr
183183 %cond = fcmp oeq float %f1, %f2
184184 %res = select i1 %cond, i64 %a, i64 %b
185185 ret i64 %res
193193 ; CHECK-SCALAR: lgr %r2, %r3
194194 ; CHECK-VECTOR-NEXT: locgrnlh %r2, %r3
195195 ; CHECK: br %r14
196 %f1 = load float , float *%ptr
196 %f1 = load float, float *%ptr
197197 %cond = fcmp one float %f1, %f2
198198 %res = select i1 %cond, i64 %a, i64 %b
199199 ret i64 %res
207207 ; CHECK-SCALAR: lgr %r2, %r3
208208 ; CHECK-VECTOR-NEXT: locgrnh %r2, %r3
209209 ; CHECK: br %r14
210 %f1 = load float , float *%ptr
210 %f1 = load float, float *%ptr
211211 %cond = fcmp olt float %f1, %f2
212212 %res = select i1 %cond, i64 %a, i64 %b
213213 ret i64 %res
221221 ; CHECK-SCALAR: lgr %r2, %r3
222222 ; CHECK-VECTOR-NEXT: locgrnhe %r2, %r3
223223 ; CHECK: br %r14
224 %f1 = load float , float *%ptr
224 %f1 = load float, float *%ptr
225225 %cond = fcmp ole float %f1, %f2
226226 %res = select i1 %cond, i64 %a, i64 %b
227227 ret i64 %res
235235 ; CHECK-SCALAR: lgr %r2, %r3
236236 ; CHECK-VECTOR-NEXT: locgrnle %r2, %r3
237237 ; CHECK: br %r14
238 %f1 = load float , float *%ptr
238 %f1 = load float, float *%ptr
239239 %cond = fcmp oge float %f1, %f2
240240 %res = select i1 %cond, i64 %a, i64 %b
241241 ret i64 %res
249249 ; CHECK-SCALAR: lgr %r2, %r3
250250 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
251251 ; CHECK: br %r14
252 %f1 = load float , float *%ptr
252 %f1 = load float, float *%ptr
253253 %cond = fcmp ogt float %f1, %f2
254254 %res = select i1 %cond, i64 %a, i64 %b
255255 ret i64 %res
263263 ; CHECK-SCALAR: lgr %r2, %r3
264264 ; CHECK-VECTOR-NEXT: locgrlh %r2, %r3
265265 ; CHECK: br %r14
266 %f1 = load float , float *%ptr
266 %f1 = load float, float *%ptr
267267 %cond = fcmp ueq float %f1, %f2
268268 %res = select i1 %cond, i64 %a, i64 %b
269269 ret i64 %res
277277 ; CHECK-SCALAR: lgr %r2, %r3
278278 ; CHECK-VECTOR-NEXT: locgre %r2, %r3
279279 ; CHECK: br %r14
280 %f1 = load float , float *%ptr
280 %f1 = load float, float *%ptr
281281 %cond = fcmp une float %f1, %f2
282282 %res = select i1 %cond, i64 %a, i64 %b
283283 ret i64 %res
291291 ; CHECK-SCALAR: lgr %r2, %r3
292292 ; CHECK-VECTOR-NEXT: locgrle %r2, %r3
293293 ; CHECK: br %r14
294 %f1 = load float , float *%ptr
294 %f1 = load float, float *%ptr
295295 %cond = fcmp ult float %f1, %f2
296296 %res = select i1 %cond, i64 %a, i64 %b
297297 ret i64 %res
305305 ; CHECK-SCALAR: lgr %r2, %r3
306306 ; CHECK-VECTOR-NEXT: locgrl %r2, %r3
307307 ; CHECK: br %r14
308 %f1 = load float , float *%ptr
308 %f1 = load float, float *%ptr
309309 %cond = fcmp ule float %f1, %f2
310310 %res = select i1 %cond, i64 %a, i64 %b
311311 ret i64 %res
319319 ; CHECK-SCALAR: lgr %r2, %r3
320320 ; CHECK-VECTOR-NEXT: locgrh %r2, %r3
321321 ; CHECK: br %r14
322 %f1 = load float , float *%ptr
322 %f1 = load float, float *%ptr
323323 %cond = fcmp uge float %f1, %f2
324324 %res = select i1 %cond, i64 %a, i64 %b
325325 ret i64 %res
333333 ; CHECK-SCALAR: lgr %r2, %r3
334334 ; CHECK-VECTOR-NEXT: locgrhe %r2, %r3
335335 ; CHECK: br %r14
336 %f1 = load float , float *%ptr
336 %f1 = load float, float *%ptr
337337 %cond = fcmp ugt float %f1, %f2
338338 %res = select i1 %cond, i64 %a, i64 %b
339339 ret i64 %res
2828 ; CHECK-SCALAR: lgr %r2, %r3
2929 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
3030 ; CHECK: br %r14
31 %f2 = load double , double *%ptr
31 %f2 = load double, double *%ptr
3232 %cond = fcmp oeq double %f1, %f2
3333 %res = select i1 %cond, i64 %a, i64 %b
3434 ret i64 %res
4343 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
4444 ; CHECK: br %r14
4545 %ptr = getelementptr double, double *%base, i64 511
46 %f2 = load double , double *%ptr
46 %f2 = load double, double *%ptr
4747 %cond = fcmp oeq double %f1, %f2
4848 %res = select i1 %cond, i64 %a, i64 %b
4949 ret i64 %res
6060 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
6161 ; CHECK: br %r14
6262 %ptr = getelementptr double, double *%base, i64 512
63 %f2 = load double , double *%ptr
63 %f2 = load double, double *%ptr
6464 %cond = fcmp oeq double %f1, %f2
6565 %res = select i1 %cond, i64 %a, i64 %b
6666 ret i64 %res
7676 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
7777 ; CHECK: br %r14
7878 %ptr = getelementptr double, double *%base, i64 -1
79 %f2 = load double , double *%ptr
79 %f2 = load double, double *%ptr
8080 %cond = fcmp oeq double %f1, %f2
8181 %res = select i1 %cond, i64 %a, i64 %b
8282 ret i64 %res
9393 ; CHECK: br %r14
9494 %ptr1 = getelementptr double, double *%base, i64 %index
9595 %ptr2 = getelementptr double, double *%ptr1, i64 100
96 %f2 = load double , double *%ptr2
96 %f2 = load double, double *%ptr2
9797 %cond = fcmp oeq double %f1, %f2
9898 %res = select i1 %cond, i64 %a, i64 %b
9999 ret i64 %res
116116 %ptr9 = getelementptr double, double *%ptr0, i64 18
117117 %ptr10 = getelementptr double, double *%ptr0, i64 20
118118
119 %val0 = load double , double *%ptr0
120 %val1 = load double , double *%ptr1
121 %val2 = load double , double *%ptr2
122 %val3 = load double , double *%ptr3
123 %val4 = load double , double *%ptr4
124 %val5 = load double , double *%ptr5
125 %val6 = load double , double *%ptr6
126 %val7 = load double , double *%ptr7
127 %val8 = load double , double *%ptr8
128 %val9 = load double , double *%ptr9
129 %val10 = load double , double *%ptr10
119 %val0 = load double, double *%ptr0
120 %val1 = load double, double *%ptr1
121 %val2 = load double, double *%ptr2
122 %val3 = load double, double *%ptr3
123 %val4 = load double, double *%ptr4
124 %val5 = load double, double *%ptr5
125 %val6 = load double, double *%ptr6
126 %val7 = load double, double *%ptr7
127 %val8 = load double, double *%ptr8
128 %val9 = load double, double *%ptr9
129 %val10 = load double, double *%ptr10
130130
131131 %ret = call double @foo()
132132
179179 ; CHECK-SCALAR: lgr %r2, %r3
180180 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
181181 ; CHECK: br %r14
182 %f1 = load double , double *%ptr
182 %f1 = load double, double *%ptr
183183 %cond = fcmp ogt double %f1, %f2
184184 %res = select i1 %cond, i64 %a, i64 %b
185185 ret i64 %res
1313 ; CHECK: lgr %r2, %r3
1414 ; CHECK: br %r14
1515 %f2x = fpext float %f2 to fp128
16 %f1 = load fp128 , fp128 *%ptr
16 %f1 = load fp128, fp128 *%ptr
1717 %cond = fcmp oeq fp128 %f1, %f2x
1818 %res = select i1 %cond, i64 %a, i64 %b
1919 ret i64 %res
2828 ; CHECK-NEXT: ber %r14
2929 ; CHECK: lgr %r2, %r3
3030 ; CHECK: br %r14
31 %f = load fp128 , fp128 *%ptr
31 %f = load fp128, fp128 *%ptr
3232 %cond = fcmp oeq fp128 %f, 0xL00000000000000000000000000000000
3333 %res = select i1 %cond, i64 %a, i64 %b
3434 ret i64 %res
8787 ; CHECK-NEXT: bnher %r14
8888 ; CHECK: br %r14
8989 entry:
90 %cur = load float , float *%dest
90 %cur = load float, float *%dest
9191 %res = fsub float %a, %cur
9292 %cmp = fcmp ult float %res, 0.0
9393 br i1 %cmp, label %exit, label %store
283283 ; CHECK-NEXT: blr %r14
284284 ; CHECK: br %r14
285285 entry:
286 %val1 = load fp128 , fp128 *%ptr1
287 %val2 = load fp128 , fp128 *%ptr2
286 %val1 = load fp128, fp128 *%ptr1
287 %val2 = load fp128, fp128 *%ptr2
288288 %div = fdiv fp128 %val1, %val2
289289 store fp128 %div, fp128 *%ptr1
290290 %mul = fmul fp128 %val1, %val2
1919 ; CHECK-LABEL: f2:
2020 ; CHECK: lexbr %f0, %f0
2121 ; CHECK: br %r14
22 %val = load fp128 , fp128 *%ptr
22 %val = load fp128, fp128 *%ptr
2323 %res = fptrunc fp128 %val to float
2424 ret float %res
2525 }
3232 ; CHECK: aebr %f1, %f2
3333 ; CHECK: ste %f1, 0(%r2)
3434 ; CHECK: br %r14
35 %val = load fp128 , fp128 *%ptr
35 %val = load fp128, fp128 *%ptr
3636 %conv = fptrunc fp128 %val to float
3737 %res = fadd float %conv, %d2
3838 store float %res, float *%dst
4444 ; CHECK-LABEL: f4:
4545 ; CHECK: ldxbr %f0, %f0
4646 ; CHECK: br %r14
47 %val = load fp128 , fp128 *%ptr
47 %val = load fp128, fp128 *%ptr
4848 %res = fptrunc fp128 %val to double
4949 ret double %res
5050 }
5858 ; CHECK-VECTOR: wfadb [[REG:%f[0-9]+]], %f1, %f2
5959 ; CHECK-VECTOR: std [[REG]], 0(%r2)
6060 ; CHECK: br %r14
61 %val = load fp128 , fp128 *%ptr
61 %val = load fp128, fp128 *%ptr
6262 %conv = fptrunc fp128 %val to double
6363 %res = fadd double %conv, %d2
6464 store double %res, double *%dst
1717 ; CHECK-LABEL: f2:
1818 ; CHECK: ldeb %f0, 0(%r2)
1919 ; CHECK: br %r14
20 %val = load float , float *%ptr
20 %val = load float, float *%ptr
2121 %res = fpext float %val to double
2222 ret double %res
2323 }
2828 ; CHECK: ldeb %f0, 4092(%r2)
2929 ; CHECK: br %r14
3030 %ptr = getelementptr float, float *%base, i64 1023
31 %val = load float , float *%ptr
31 %val = load float, float *%ptr
3232 %res = fpext float %val to double
3333 ret double %res
3434 }
4141 ; CHECK: ldeb %f0, 0(%r2)
4242 ; CHECK: br %r14
4343 %ptr = getelementptr float, float *%base, i64 1024
44 %val = load float , float *%ptr
44 %val = load float, float *%ptr
4545 %res = fpext float %val to double
4646 ret double %res
4747 }
5353 ; CHECK: ldeb %f0, 0(%r2)
5454 ; CHECK: br %r14
5555 %ptr = getelementptr float, float *%base, i64 -1
56 %val = load float , float *%ptr
56 %val = load float, float *%ptr
5757 %res = fpext float %val to double
5858 ret double %res
5959 }
6666 ; CHECK: br %r14
6767 %ptr1 = getelementptr float, float *%base, i64 %index
6868 %ptr2 = getelementptr float, float *%ptr1, i64 100
69 %val = load float , float *%ptr2
69 %val = load float, float *%ptr2
7070 %res = fpext float %val to double
7171 ret double %res
7272 }
2020 ; CHECK: std %f0, 0(%r2)
2121 ; CHECK: std %f2, 8(%r2)
2222 ; CHECK: br %r14
23 %val = load float , float *%ptr
23 %val = load float, float *%ptr
2424 %res = fpext float %val to fp128
2525 store fp128 %res, fp128 *%dst
2626 ret void
3434 ; CHECK: std %f2, 8(%r2)
3535 ; CHECK: br %r14
3636 %ptr = getelementptr float, float *%base, i64 1023
37 %val = load float , float *%ptr
37 %val = load float, float *%ptr
3838 %res = fpext float %val to fp128
3939 store fp128 %res, fp128 *%dst
4040 ret void
5050 ; CHECK: std %f2, 8(%r2)
5151 ; CHECK: br %r14
5252 %ptr = getelementptr float, float *%base, i64 1024
53 %val = load float , float *%ptr
53 %val = load float, float *%ptr
5454 %res = fpext float %val to fp128
5555 store fp128 %res, fp128 *%dst
5656 ret void
6565 ; CHECK: std %f2, 8(%r2)
6666 ; CHECK: br %r14
6767 %ptr = getelementptr float, float *%base, i64 -1
68 %val = load float , float *%ptr
68 %val = load float, float *%ptr
6969 %res = fpext float %val to fp128
7070 store fp128 %res, fp128 *%dst
7171 ret void
8181 ; CHECK: br %r14
8282 %ptr1 = getelementptr float, float *%base, i64 %index
8383 %ptr2 = getelementptr float, float *%ptr1, i64 100
84 %val = load float , float *%ptr2
84 %val = load float, float *%ptr2
8585 %res = fpext float %val to fp128
8686 store fp128 %res, fp128 *%dst
8787 ret void
9393 ; CHECK-LABEL: f7:
9494 ; CHECK: lxeb {{%f[0-9]+}}, 16{{[04]}}(%r15)
9595 ; CHECK: br %r14
96 %val0 = load volatile float , float *%ptr2
97 %val1 = load volatile float , float *%ptr2
98 %val2 = load volatile float , float *%ptr2
99 %val3 = load volatile float , float *%ptr2
100 %val4 = load volatile float , float *%ptr2
101 %val5 = load volatile float , float *%ptr2
102 %val6 = load volatile float , float *%ptr2
103 %val7 = load volatile float , float *%ptr2
104 %val8 = load volatile float , float *%ptr2
105 %val9 = load volatile float , float *%ptr2
106 %val10 = load volatile float , float *%ptr2
107 %val11 = load volatile float , float *%ptr2
108 %val12 = load volatile float , float *%ptr2
109 %val13 = load volatile float , float *%ptr2
110 %val14 = load volatile float , float *%ptr2
111 %val15 = load volatile float , float *%ptr2
112 %val16 = load volatile float , float *%ptr2
96 %val0 = load volatile float, float *%ptr2
97 %val1 = load volatile float, float *%ptr2
98 %val2 = load volatile float, float *%ptr2
99 %val3 = load volatile float, float *%ptr2
100 %val4 = load volatile float, float *%ptr2
101 %val5 = load volatile float, float *%ptr2
102 %val6 = load volatile float, float *%ptr2
103 %val7 = load volatile float, float *%ptr2
104 %val8 = load volatile float, float *%ptr2
105 %val9 = load volatile float, float *%ptr2
106 %val10 = load volatile float, float *%ptr2
107 %val11 = load volatile float, float *%ptr2
108 %val12 = load volatile float, float *%ptr2
109 %val13 = load volatile float, float *%ptr2
110 %val14 = load volatile float, float *%ptr2
111 %val15 = load volatile float, float *%ptr2
112 %val16 = load volatile float, float *%ptr2
113113
114114 %ext0 = fpext float %val0 to fp128
115115 %ext1 = fpext float %val1 to fp128
2020 ; CHECK: std %f0, 0(%r2)
2121 ; CHECK: std %f2, 8(%r2)
2222 ; CHECK: br %r14
23 %val = load double , double *%ptr
23 %val = load double, double *%ptr
2424 %res = fpext double %val to fp128
2525 store fp128 %res, fp128 *%dst
2626 ret void
3434 ; CHECK: std %f2, 8(%r2)
3535 ; CHECK: br %r14
3636 %ptr = getelementptr double, double *%base, i64 511
37 %val = load double , double *%ptr