llvm.org GIT mirror llvm / af2a1be
[SystemZ] Tighten branch tests After r182274, the branches in these tests must always be short. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182358 91177308-0d34-0410-b5e6-96231b3b80d8 Richard Sandiford 7 years ago
85 changed file(s) with 474 addition(s) and 474 deletion(s). Raw diff Collapse all Expand all
88 ; CHECK: l %r0, 0(%r3)
99 ; CHECK: [[LABEL:\.[^:]*]]:
1010 ; CHECK: cs %r0, %r2, 0(%r3)
11 ; CHECK: j{{g?}}lh [[LABEL]]
11 ; CHECK: jlh [[LABEL]]
1212 ; CHECK: br %r14
1313 store atomic i32 %val, i32 *%src seq_cst, align 4
1414 ret void
88 ; CHECK: lg %r0, 0(%r3)
99 ; CHECK: [[LABEL:\.[^:]*]]:
1010 ; CHECK: csg %r0, %r2, 0(%r3)
11 ; CHECK: j{{g?}}lh [[LABEL]]
11 ; CHECK: jlh [[LABEL]]
1212 ; CHECK: br %r14
1313 store atomic i64 %val, i64 *%src seq_cst, align 8
1414 ret void
2121 ; CHECK: ar [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: afi [[ROT]], -2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
2121 ; CHECK: ar [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: afi [[ROT]], -2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
99 ; CHECK: lr %r0, %r2
1010 ; CHECK: ar %r0, %r4
1111 ; CHECK: cs %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw add i32 *%src, i32 %b seq_cst
1515 ret i32 %res
2323 ; CHECK: lr %r0, %r2
2424 ; CHECK: ahi %r0, 1
2525 ; CHECK: cs %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw add i32 *%src, i32 1 seq_cst
2929 ret i32 %res
99 ; CHECK: lgr %r0, %r2
1010 ; CHECK: agr %r0, %r4
1111 ; CHECK: csg %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw add i64 *%src, i64 %b seq_cst
1515 ret i64 %res
2323 ; CHECK: lgr %r0, %r2
2424 ; CHECK: aghi %r0, 1
2525 ; CHECK: csg %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw add i64 *%src, i64 1 seq_cst
2929 ret i64 %res
2121 ; CHECK: nr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5656 ; CHECK: nilh [[ROT]], 33023
5757 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5858 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
59 ; CHECK: j{{g?}}lh [[LABEL]]
59 ; CHECK: jlh [[LABEL]]
6060 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6161 ; CHECK: br %r14
6262 ;
2121 ; CHECK: nr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5656 ; CHECK: nilh [[ROT]], 32768
5757 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5858 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
59 ; CHECK: j{{g?}}lh [[LABEL]]
59 ; CHECK: jlh [[LABEL]]
6060 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6161 ; CHECK: br %r14
6262 ;
99 ; CHECK: lr %r0, %r2
1010 ; CHECK: nr %r0, %r4
1111 ; CHECK: cs %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw and i32 *%src, i32 %b seq_cst
1515 ret i32 %res
2323 ; CHECK: lr %r0, %r2
2424 ; CHECK: nilf %r0, 1
2525 ; CHECK: cs %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw and i32 *%src, i32 1 seq_cst
2929 ret i32 %res
99 ; CHECK: lgr %r0, %r2
1010 ; CHECK: ngr %r0, %r4
1111 ; CHECK: csg %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw and i64 *%src, i64 %b seq_cst
1515 ret i64 %res
3232 ; CHECK: lgr %r0, %r2
3333 ; CHECK: nihf %r0, 0
3434 ; CHECK: csg %r2, %r0, 0(%r3)
35 ; CHECK: j{{g?}}lh [[LABEL]]
35 ; CHECK: jlh [[LABEL]]
3636 ; CHECK: br %r14
3737 %res = atomicrmw and i64 *%src, i64 4294967295 seq_cst
3838 ret i64 %res
1919 ; CHECK: [[LOOP:\.[^:]*]]:
2020 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
2121 ; CHECK: cr [[ROT]], %r3
22 ; CHECK: j{{g?}}le [[KEEP:\..*]]
23 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
24 ; CHECK: [[KEEP]]:
25 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
26 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
27 ; CHECK: j{{g?}}lh [[LOOP]]
22 ; CHECK: jle [[KEEP:\..*]]
23 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
24 ; CHECK: [[KEEP]]:
25 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
26 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
27 ; CHECK: jlh [[LOOP]]
2828 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2929 ; CHECK: br %r14
3030 ;
5656 ; CHECK: [[LOOP:\.[^:]*]]:
5757 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
5858 ; CHECK: cr [[ROT]], %r3
59 ; CHECK: j{{g?}}he [[KEEP:\..*]]
60 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
61 ; CHECK: [[KEEP]]:
62 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
63 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
64 ; CHECK: j{{g?}}lh [[LOOP]]
59 ; CHECK: jhe [[KEEP:\..*]]
60 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
61 ; CHECK: [[KEEP]]:
62 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
63 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
64 ; CHECK: jlh [[LOOP]]
6565 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6666 ; CHECK: br %r14
6767 ;
9393 ; CHECK: [[LOOP:\.[^:]*]]:
9494 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
9595 ; CHECK: clr [[ROT]], %r3
96 ; CHECK: j{{g?}}le [[KEEP:\..*]]
97 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
98 ; CHECK: [[KEEP]]:
99 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
100 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
101 ; CHECK: j{{g?}}lh [[LOOP]]
96 ; CHECK: jle [[KEEP:\..*]]
97 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
98 ; CHECK: [[KEEP]]:
99 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
100 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
101 ; CHECK: jlh [[LOOP]]
102102 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
103103 ; CHECK: br %r14
104104 ;
130130 ; CHECK: [[LOOP:\.[^:]*]]:
131131 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
132132 ; CHECK: clr [[ROT]], %r3
133 ; CHECK: j{{g?}}he [[KEEP:\..*]]
134 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
135 ; CHECK: [[KEEP]]:
136 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
137 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
138 ; CHECK: j{{g?}}lh [[LOOP]]
133 ; CHECK: jhe [[KEEP:\..*]]
134 ; CHECK: risbg [[ROT]], %r3, 32, 39, 0
135 ; CHECK: [[KEEP]]:
136 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
137 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
138 ; CHECK: jlh [[LOOP]]
139139 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
140140 ; CHECK: br %r14
141141 ;
1919 ; CHECK: [[LOOP:\.[^:]*]]:
2020 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
2121 ; CHECK: cr [[ROT]], %r3
22 ; CHECK: j{{g?}}le [[KEEP:\..*]]
23 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
24 ; CHECK: [[KEEP]]:
25 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
26 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
27 ; CHECK: j{{g?}}lh [[LOOP]]
22 ; CHECK: jle [[KEEP:\..*]]
23 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
24 ; CHECK: [[KEEP]]:
25 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
26 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
27 ; CHECK: jlh [[LOOP]]
2828 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2929 ; CHECK: br %r14
3030 ;
5656 ; CHECK: [[LOOP:\.[^:]*]]:
5757 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
5858 ; CHECK: cr [[ROT]], %r3
59 ; CHECK: j{{g?}}he [[KEEP:\..*]]
60 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
61 ; CHECK: [[KEEP]]:
62 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
63 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
64 ; CHECK: j{{g?}}lh [[LOOP]]
59 ; CHECK: jhe [[KEEP:\..*]]
60 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
61 ; CHECK: [[KEEP]]:
62 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
63 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
64 ; CHECK: jlh [[LOOP]]
6565 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6666 ; CHECK: br %r14
6767 ;
9393 ; CHECK: [[LOOP:\.[^:]*]]:
9494 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
9595 ; CHECK: clr [[ROT]], %r3
96 ; CHECK: j{{g?}}le [[KEEP:\..*]]
97 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
98 ; CHECK: [[KEEP]]:
99 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
100 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
101 ; CHECK: j{{g?}}lh [[LOOP]]
96 ; CHECK: jle [[KEEP:\..*]]
97 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
98 ; CHECK: [[KEEP]]:
99 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
100 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
101 ; CHECK: jlh [[LOOP]]
102102 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
103103 ; CHECK: br %r14
104104 ;
130130 ; CHECK: [[LOOP:\.[^:]*]]:
131131 ; CHECK: rll [[ROT:%r[0-9]+]], [[OLD]], 0([[SHIFT]])
132132 ; CHECK: clr [[ROT]], %r3
133 ; CHECK: j{{g?}}he [[KEEP:\..*]]
134 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
135 ; CHECK: [[KEEP]]:
136 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
137 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
138 ; CHECK: j{{g?}}lh [[LOOP]]
133 ; CHECK: jhe [[KEEP:\..*]]
134 ; CHECK: risbg [[ROT]], %r3, 32, 47, 0
135 ; CHECK: [[KEEP]]:
136 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
137 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
138 ; CHECK: jlh [[LOOP]]
139139 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
140140 ; CHECK: br %r14
141141 ;
88 ; CHECK: [[LOOP:\.[^:]*]]:
99 ; CHECK: cr %r2, %r4
1010 ; CHECK: lr [[NEW:%r[0-9]+]], %r2
11 ; CHECK: j{{g?}}le [[KEEP:\..*]]
11 ; CHECK: jle [[KEEP:\..*]]
1212 ; CHECK: lr [[NEW]], %r4
1313 ; CHECK: cs %r2, [[NEW]], 0(%r3)
14 ; CHECK: j{{g?}}lh [[LOOP]]
14 ; CHECK: jlh [[LOOP]]
1515 ; CHECK: br %r14
1616 %res = atomicrmw min i32 *%src, i32 %b seq_cst
1717 ret i32 %res
2424 ; CHECK: [[LOOP:\.[^:]*]]:
2525 ; CHECK: cr %r2, %r4
2626 ; CHECK: lr [[NEW:%r[0-9]+]], %r2
27 ; CHECK: j{{g?}}he [[KEEP:\..*]]
27 ; CHECK: jhe [[KEEP:\..*]]
2828 ; CHECK: lr [[NEW]], %r4
2929 ; CHECK: cs %r2, [[NEW]], 0(%r3)
30 ; CHECK: j{{g?}}lh [[LOOP]]
30 ; CHECK: jlh [[LOOP]]
3131 ; CHECK: br %r14
3232 %res = atomicrmw max i32 *%src, i32 %b seq_cst
3333 ret i32 %res
4040 ; CHECK: [[LOOP:\.[^:]*]]:
4141 ; CHECK: clr %r2, %r4
4242 ; CHECK: lr [[NEW:%r[0-9]+]], %r2
43 ; CHECK: j{{g?}}le [[KEEP:\..*]]
43 ; CHECK: jle [[KEEP:\..*]]
4444 ; CHECK: lr [[NEW]], %r4
4545 ; CHECK: cs %r2, [[NEW]], 0(%r3)
46 ; CHECK: j{{g?}}lh [[LOOP]]
46 ; CHECK: jlh [[LOOP]]
4747 ; CHECK: br %r14
4848 %res = atomicrmw umin i32 *%src, i32 %b seq_cst
4949 ret i32 %res
5656 ; CHECK: [[LOOP:\.[^:]*]]:
5757 ; CHECK: clr %r2, %r4
5858 ; CHECK: lr [[NEW:%r[0-9]+]], %r2
59 ; CHECK: j{{g?}}he [[KEEP:\..*]]
59 ; CHECK: jhe [[KEEP:\..*]]
6060 ; CHECK: lr [[NEW]], %r4
6161 ; CHECK: cs %r2, [[NEW]], 0(%r3)
62 ; CHECK: j{{g?}}lh [[LOOP]]
62 ; CHECK: jlh [[LOOP]]
6363 ; CHECK: br %r14
6464 %res = atomicrmw umax i32 *%src, i32 %b seq_cst
6565 ret i32 %res
165165 ; CHECK: [[LOOP:\.[^:]*]]:
166166 ; CHECK: cr %r2, [[LIMIT]]
167167 ; CHECK: lr [[NEW:%r[0-9]+]], %r2
168 ; CHECK: j{{g?}}le [[KEEP:\..*]]
168 ; CHECK: jle [[KEEP:\..*]]
169169 ; CHECK: lr [[NEW]], [[LIMIT]]
170170 ; CHECK: cs %r2, [[NEW]], 0(%r3)
171 ; CHECK: j{{g?}}lh [[LOOP]]
171 ; CHECK: jlh [[LOOP]]
172172 ; CHECK: br %r14
173173 %res = atomicrmw min i32 *%ptr, i32 42 seq_cst
174174 ret i32 %res
88 ; CHECK: [[LOOP:\.[^:]*]]:
99 ; CHECK: cgr %r2, %r4
1010 ; CHECK: lgr [[NEW:%r[0-9]+]], %r2
11 ; CHECK: j{{g?}}le [[KEEP:\..*]]
11 ; CHECK: jle [[KEEP:\..*]]
1212 ; CHECK: lgr [[NEW]], %r4
1313 ; CHECK: csg %r2, [[NEW]], 0(%r3)
14 ; CHECK: j{{g?}}lh [[LOOP]]
14 ; CHECK: jlh [[LOOP]]
1515 ; CHECK: br %r14
1616 %res = atomicrmw min i64 *%src, i64 %b seq_cst
1717 ret i64 %res
2424 ; CHECK: [[LOOP:\.[^:]*]]:
2525 ; CHECK: cgr %r2, %r4
2626 ; CHECK: lgr [[NEW:%r[0-9]+]], %r2
27 ; CHECK: j{{g?}}he [[KEEP:\..*]]
27 ; CHECK: jhe [[KEEP:\..*]]
2828 ; CHECK: lgr [[NEW]], %r4
2929 ; CHECK: csg %r2, [[NEW]], 0(%r3)
30 ; CHECK: j{{g?}}lh [[LOOP]]
30 ; CHECK: jlh [[LOOP]]
3131 ; CHECK: br %r14
3232 %res = atomicrmw max i64 *%src, i64 %b seq_cst
3333 ret i64 %res
4040 ; CHECK: [[LOOP:\.[^:]*]]:
4141 ; CHECK: clgr %r2, %r4
4242 ; CHECK: lgr [[NEW:%r[0-9]+]], %r2
43 ; CHECK: j{{g?}}le [[KEEP:\..*]]
43 ; CHECK: jle [[KEEP:\..*]]
4444 ; CHECK: lgr [[NEW]], %r4
4545 ; CHECK: csg %r2, [[NEW]], 0(%r3)
46 ; CHECK: j{{g?}}lh [[LOOP]]
46 ; CHECK: jlh [[LOOP]]
4747 ; CHECK: br %r14
4848 %res = atomicrmw umin i64 *%src, i64 %b seq_cst
4949 ret i64 %res
5656 ; CHECK: [[LOOP:\.[^:]*]]:
5757 ; CHECK: clgr %r2, %r4
5858 ; CHECK: lgr [[NEW:%r[0-9]+]], %r2
59 ; CHECK: j{{g?}}he [[KEEP:\..*]]
59 ; CHECK: jhe [[KEEP:\..*]]
6060 ; CHECK: lgr [[NEW]], %r4
6161 ; CHECK: csg %r2, [[NEW]], 0(%r3)
62 ; CHECK: j{{g?}}lh [[LOOP]]
62 ; CHECK: jlh [[LOOP]]
6363 ; CHECK: br %r14
6464 %res = atomicrmw umax i64 *%src, i64 %b seq_cst
6565 ret i64 %res
132132 ; CHECK: [[LOOP:\.[^:]*]]:
133133 ; CHECK: cgr %r2, [[LIMIT]]
134134 ; CHECK: lgr [[NEW:%r[0-9]+]], %r2
135 ; CHECK: j{{g?}}le [[KEEP:\..*]]
135 ; CHECK: jle [[KEEP:\..*]]
136136 ; CHECK: lgr [[NEW]], [[LIMIT]]
137137 ; CHECK: csg %r2, [[NEW]], 0(%r3)
138 ; CHECK: j{{g?}}lh [[LOOP]]
138 ; CHECK: jlh [[LOOP]]
139139 ; CHECK: br %r14
140140 %res = atomicrmw min i64 *%ptr, i64 42 seq_cst
141141 ret i64 %res
2222 ; CHECK: xilf [[ROT]], 4278190080
2323 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2424 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
25 ; CHECK: j{{g?}}lh [[LABEL]]
25 ; CHECK: jlh [[LABEL]]
2626 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2727 ; CHECK: br %r14
2828 ;
5858 ; CHECK: xilf [[ROT]], 4278190080
5959 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
6060 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
61 ; CHECK: j{{g?}}lh [[LABEL]]
61 ; CHECK: jlh [[LABEL]]
6262 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6363 ; CHECK: br %r14
6464 ;
2222 ; CHECK: xilf [[ROT]], 4294901760
2323 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2424 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
25 ; CHECK: j{{g?}}lh [[LABEL]]
25 ; CHECK: jlh [[LABEL]]
2626 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2727 ; CHECK: br %r14
2828 ;
5858 ; CHECK: xilf [[ROT]], 4294901760
5959 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
6060 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
61 ; CHECK: j{{g?}}lh [[LABEL]]
61 ; CHECK: jlh [[LABEL]]
6262 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6363 ; CHECK: br %r14
6464 ;
1010 ; CHECK: nr %r0, %r4
1111 ; CHECK: xilf %r0, 4294967295
1212 ; CHECK: cs %r2, %r0, 0(%r3)
13 ; CHECK: j{{g?}}lh [[LABEL]]
13 ; CHECK: jlh [[LABEL]]
1414 ; CHECK: br %r14
1515 %res = atomicrmw nand i32 *%src, i32 %b seq_cst
1616 ret i32 %res
2525 ; CHECK: nilf %r0, 1
2626 ; CHECK: xilf %r0, 4294967295
2727 ; CHECK: cs %r2, %r0, 0(%r3)
28 ; CHECK: j{{g?}}lh [[LABEL]]
28 ; CHECK: jlh [[LABEL]]
2929 ; CHECK: br %r14
3030 %res = atomicrmw nand i32 *%src, i32 1 seq_cst
3131 ret i32 %res
1111 ; CHECK: lcgr %r0, %r0
1212 ; CHECK: aghi %r0, -1
1313 ; CHECK: csg %r2, %r0, 0(%r3)
14 ; CHECK: j{{g?}}lh [[LABEL]]
14 ; CHECK: jlh [[LABEL]]
1515 ; CHECK: br %r14
1616 %res = atomicrmw nand i64 *%src, i64 %b seq_cst
1717 ret i64 %res
3636 ; CHECK: lcgr %r0, %r0
3737 ; CHECK: aghi %r0, -1
3838 ; CHECK: csg %r2, %r0, 0(%r3)
39 ; CHECK: j{{g?}}lh [[LABEL]]
39 ; CHECK: jlh [[LABEL]]
4040 ; CHECK: br %r14
4141 %res = atomicrmw nand i64 *%src, i64 4294967295 seq_cst
4242 ret i64 %res
2121 ; CHECK: or [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: oilh [[ROT]], 32768
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
2121 ; CHECK: or [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: oilh [[ROT]], 32768
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
99 ; CHECK: lr %r0, %r2
1010 ; CHECK: or %r0, %r4
1111 ; CHECK: cs %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw or i32 *%src, i32 %b seq_cst
1515 ret i32 %res
2323 ; CHECK: lr %r0, %r2
2424 ; CHECK: oill %r0, 1
2525 ; CHECK: cs %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw or i32 *%src, i32 1 seq_cst
2929 ret i32 %res
99 ; CHECK: lgr %r0, %r2
1010 ; CHECK: ogr %r0, %r4
1111 ; CHECK: csg %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw or i64 *%src, i64 %b seq_cst
1515 ret i64 %res
2323 ; CHECK: lgr %r0, %r2
2424 ; CHECK: oill %r0, 1
2525 ; CHECK: csg %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw or i64 *%src, i64 1 seq_cst
2929 ret i64 %res
2121 ; CHECK: sr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: afi [[ROT]], -2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
2121 ; CHECK: sr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: afi [[ROT]], -2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
99 ; CHECK: lr %r0, %r2
1010 ; CHECK: sr %r0, %r4
1111 ; CHECK: cs %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw sub i32 *%src, i32 %b seq_cst
1515 ret i32 %res
2323 ; CHECK: lr %r0, %r2
2424 ; CHECK: ahi %r0, -1
2525 ; CHECK: cs %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw sub i32 *%src, i32 1 seq_cst
2929 ret i32 %res
99 ; CHECK: lgr %r0, %r2
1010 ; CHECK: sgr %r0, %r4
1111 ; CHECK: csg %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw sub i64 *%src, i64 %b seq_cst
1515 ret i64 %res
2323 ; CHECK: lgr %r0, %r2
2424 ; CHECK: aghi %r0, -1
2525 ; CHECK: csg %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw sub i64 *%src, i64 1 seq_cst
2929 ret i64 %res
1919 ; CHECK: risbg [[ROT]], %r3, 32, 39, 24
2020 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2121 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
22 ; CHECK: j{{g?}}lh [[LABEL]]
22 ; CHECK: jlh [[LABEL]]
2323 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2424 ; CHECK: br %r14
2525 ;
1919 ; CHECK: risbg [[ROT]], %r3, 32, 47, 16
2020 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2121 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
22 ; CHECK: j{{g?}}lh [[LABEL]]
22 ; CHECK: jlh [[LABEL]]
2323 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2424 ; CHECK: br %r14
2525 ;
77 ; CHECK: l %r2, 0(%r3)
88 ; CHECK: [[LABEL:\.[^:]*]]:
99 ; CHECK: cs %r2, %r4, 0(%r3)
10 ; CHECK: j{{g?}}lh [[LABEL]]
10 ; CHECK: jlh [[LABEL]]
1111 ; CHECK: br %r14
1212 %res = atomicrmw xchg i32 *%src, i32 %b seq_cst
1313 ret i32 %res
113113 ; CHECK: l %r2, 0(%r3)
114114 ; CHECK: [[LABEL:\.[^:]*]]:
115115 ; CHECK: cs %r2, [[VALUE]], 0(%r3)
116 ; CHECK: j{{g?}}lh [[LABEL]]
116 ; CHECK: jlh [[LABEL]]
117117 ; CHECK: br %r14
118118 %res = atomicrmw xchg i32 *%src, i32 40000 seq_cst
119119 ret i32 %res
77 ; CHECK: lg %r2, 0(%r3)
88 ; CHECK: [[LABEL:\.[^:]*]]:
99 ; CHECK: csg %r2, %r4, 0(%r3)
10 ; CHECK: j{{g?}}lh [[LABEL]]
10 ; CHECK: jlh [[LABEL]]
1111 ; CHECK: br %r14
1212 %res = atomicrmw xchg i64 *%src, i64 %b seq_cst
1313 ret i64 %res
8080 ; CHECK: lg %r2, 0(%r3)
8181 ; CHECK: [[LABEL:\.[^:]*]]:
8282 ; CHECK: csg %r2, [[VALUE]], 0(%r3)
83 ; CHECK: j{{g?}}lh [[LABEL]]
83 ; CHECK: jlh [[LABEL]]
8484 ; CHECK: br %r14
8585 %res = atomicrmw xchg i64 *%ptr, i64 3000000000 seq_cst
8686 ret i64 %res
2121 ; CHECK: xr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: xilf [[ROT]], 2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 8([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
2121 ; CHECK: xr [[ROT]], %r3
2222 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0({{%r[1-9]+}})
2323 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
24 ; CHECK: j{{g?}}lh [[LABEL]]
24 ; CHECK: jlh [[LABEL]]
2525 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
2626 ; CHECK: br %r14
2727 ;
5555 ; CHECK: xilf [[ROT]], 2147483648
5656 ; CHECK: rll [[NEW:%r[0-9]+]], [[ROT]], 0([[NEGSHIFT:%r[1-9]+]])
5757 ; CHECK: cs [[OLD]], [[NEW]], 0(%r2)
58 ; CHECK: j{{g?}}lh [[LABEL]]
58 ; CHECK: jlh [[LABEL]]
5959 ; CHECK: rll %r2, [[OLD]], 16([[SHIFT]])
6060 ; CHECK: br %r14
6161 ;
99 ; CHECK: lr %r0, %r2
1010 ; CHECK: xr %r0, %r4
1111 ; CHECK: cs %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw xor i32 *%src, i32 %b seq_cst
1515 ret i32 %res
2323 ; CHECK: lr %r0, %r2
2424 ; CHECK: xilf %r0, 1
2525 ; CHECK: cs %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw xor i32 *%src, i32 1 seq_cst
2929 ret i32 %res
99 ; CHECK: lgr %r0, %r2
1010 ; CHECK: xgr %r0, %r4
1111 ; CHECK: csg %r2, %r0, 0(%r3)
12 ; CHECK: j{{g?}}lh [[LABEL]]
12 ; CHECK: jlh [[LABEL]]
1313 ; CHECK: br %r14
1414 %res = atomicrmw xor i64 *%src, i64 %b seq_cst
1515 ret i64 %res
2323 ; CHECK: lgr %r0, %r2
2424 ; CHECK: xilf %r0, 1
2525 ; CHECK: csg %r2, %r0, 0(%r3)
26 ; CHECK: j{{g?}}lh [[LABEL]]
26 ; CHECK: jlh [[LABEL]]
2727 ; CHECK: br %r14
2828 %res = atomicrmw xor i64 *%src, i64 1 seq_cst
2929 ret i64 %res
55 ; CHECK: f1:
66 ; CHECK: .L[[LABEL:.*]]:
77 ; CHECK: mvi 0(%r2), 1
8 ; CHECK: j{{g?}} .L[[LABEL]]
8 ; CHECK: j .L[[LABEL]]
99 br label %loop
1010 loop:
1111 store volatile i8 1, i8 *%dest
77 ; CHECK: .cfi_startproc
88 ; CHECK: .L[[LABEL:.*]]:
99 ; CHECK: c %r3, 0(%r2)
10 ; CHECK-NEXT: j{{g?}}e .L[[LABEL]]
10 ; CHECK-NEXT: je .L[[LABEL]]
1111 br label %loop
1212 loop:
1313 %val = load volatile i32 *%src
2222 ; CHECK: .cfi_startproc
2323 ; CHECK: .L[[LABEL:.*]]:
2424 ; CHECK: c %r3, 0(%r2)
25 ; CHECK-NEXT: j{{g?}}lh .L[[LABEL]]
25 ; CHECK-NEXT: jlh .L[[LABEL]]
2626 br label %loop
2727 loop:
2828 %val = load volatile i32 *%src
3737 ; CHECK: .cfi_startproc
3838 ; CHECK: .L[[LABEL:.*]]:
3939 ; CHECK: c %r3, 0(%r2)
40 ; CHECK-NEXT: j{{g?}}le .L[[LABEL]]
40 ; CHECK-NEXT: jle .L[[LABEL]]
4141 br label %loop
4242 loop:
4343 %val = load volatile i32 *%src
5252 ; CHECK: .cfi_startproc
5353 ; CHECK: .L[[LABEL:.*]]:
5454 ; CHECK: c %r3, 0(%r2)
55 ; CHECK-NEXT: j{{g?}}l .L[[LABEL]]
55 ; CHECK-NEXT: jl .L[[LABEL]]
5656 br label %loop
5757 loop:
5858 %val = load volatile i32 *%src
6767 ; CHECK: .cfi_startproc
6868 ; CHECK: .L[[LABEL:.*]]:
6969 ; CHECK: c %r3, 0(%r2)
70 ; CHECK-NEXT: j{{g?}}h .L[[LABEL]]
70 ; CHECK-NEXT: jh .L[[LABEL]]
7171 br label %loop
7272 loop:
7373 %val = load volatile i32 *%src
8282 ; CHECK: .cfi_startproc
8383 ; CHECK: .L[[LABEL:.*]]:
8484 ; CHECK: c %r3, 0(%r2)
85 ; CHECK-NEXT: j{{g?}}he .L[[LABEL]]
85 ; CHECK-NEXT: jhe .L[[LABEL]]
8686 br label %loop
8787 loop:
8888 %val = load volatile i32 *%src
66 ; CHECK: .cfi_startproc
77 ; CHECK: .L[[LABEL:.*]]:
88 ; CHECK: cl %r3, 0(%r2)
9 ; CHECK-NEXT: j{{g?}}le .L[[LABEL]]
9 ; CHECK-NEXT: jle .L[[LABEL]]
1010 br label %loop
1111 loop:
1212 %val = load volatile i32 *%src
2121 ; CHECK: .cfi_startproc
2222 ; CHECK: .L[[LABEL:.*]]:
2323 ; CHECK: cl %r3, 0(%r2)
24 ; CHECK-NEXT: j{{g?}}l .L[[LABEL]]
24 ; CHECK-NEXT: jl .L[[LABEL]]
2525 br label %loop
2626 loop:
2727 %val = load volatile i32 *%src
3636 ; CHECK: .cfi_startproc
3737 ; CHECK: .L[[LABEL:.*]]:
3838 ; CHECK: cl %r3, 0(%r2)
39 ; CHECK-NEXT: j{{g?}}h .L[[LABEL]]
39 ; CHECK-NEXT: jh .L[[LABEL]]
4040 br label %loop
4141 loop:
4242 %val = load volatile i32 *%src
5151 ; CHECK: .cfi_startproc
5252 ; CHECK: .L[[LABEL:.*]]:
5353 ; CHECK: cl %r3, 0(%r2)
54 ; CHECK-NEXT: j{{g?}}he .L[[LABEL]]
54 ; CHECK-NEXT: jhe .L[[LABEL]]
5555 br label %loop
5656 loop:
5757 %val = load volatile i32 *%src
77 ; CHECK: .cfi_startproc
88 ; CHECK: .L[[LABEL:.*]]:
99 ; CHECK: ceb %f0, 0(%r2)
10 ; CHECK-NEXT: j{{g?}}e .L[[LABEL]]
10 ; CHECK-NEXT: je .L[[LABEL]]
1111 br label %loop
1212 loop:
1313 %val = load volatile float *%src
2222 ; CHECK: .cfi_startproc
2323 ; CHECK: .L[[LABEL:.*]]:
2424 ; CHECK: ceb %f0, 0(%r2)
25 ; CHECK-NEXT: j{{g?}}lh .L[[LABEL]]
25 ; CHECK-NEXT: jlh .L[[LABEL]]
2626 br label %loop
2727 loop:
2828 %val = load volatile float *%src
3737 ; CHECK: .cfi_startproc
3838 ; CHECK: .L[[LABEL:.*]]:
3939 ; CHECK: ceb %f0, 0(%r2)
40 ; CHECK-NEXT: j{{g?}}le .L[[LABEL]]
40 ; CHECK-NEXT: jle .L[[LABEL]]
4141 br label %loop
4242 loop:
4343 %val = load volatile float *%src
5252 ; CHECK: .cfi_startproc
5353 ; CHECK: .L[[LABEL:.*]]:
5454 ; CHECK: ceb %f0, 0(%r2)
55 ; CHECK-NEXT: j{{g?}}l .L[[LABEL]]
55 ; CHECK-NEXT: jl .L[[LABEL]]
5656 br label %loop
5757 loop:
5858 %val = load volatile float *%src
6767 ; CHECK: .cfi_startproc
6868 ; CHECK: .L[[LABEL:.*]]:
6969 ; CHECK: ceb %f0, 0(%r2)
70 ; CHECK-NEXT: j{{g?}}h .L[[LABEL]]
70 ; CHECK-NEXT: jh .L[[LABEL]]
7171 br label %loop
7272 loop:
7373 %val = load volatile float *%src
8282 ; CHECK: .cfi_startproc
8383 ; CHECK: .L[[LABEL:.*]]:
8484 ; CHECK: ceb %f0, 0(%r2)
85 ; CHECK-NEXT: j{{g?}}he .L[[LABEL]]
85 ; CHECK-NEXT: jhe .L[[LABEL]]
8686 br label %loop
8787 loop:
8888 %val = load volatile float *%src
9797 ; CHECK: .cfi_startproc
9898 ; CHECK: .L[[LABEL:.*]]:
9999 ; CHECK: ceb %f0, 0(%r2)
100 ; CHECK-NEXT: j{{g?}}nlh .L[[LABEL]]
100 ; CHECK-NEXT: jnlh .L[[LABEL]]
101101 br label %loop
102102 loop:
103103 %val = load volatile float *%src
112112 ; CHECK: .cfi_startproc
113113 ; CHECK: .L[[LABEL:.*]]:
114114 ; CHECK: ceb %f0, 0(%r2)
115 ; CHECK-NEXT: j{{g?}}ne .L[[LABEL]]
115 ; CHECK-NEXT: jne .L[[LABEL]]
116116 br label %loop
117117 loop:
118118 %val = load volatile float *%src
127127 ; CHECK: .cfi_startproc
128128 ; CHECK: .L[[LABEL:.*]]:
129129 ; CHECK: ceb %f0, 0(%r2)
130 ; CHECK-NEXT: j{{g?}}nh .L[[LABEL]]
130 ; CHECK-NEXT: jnh .L[[LABEL]]
131131 br label %loop
132132 loop:
133133 %val = load volatile float *%src
142142 ; CHECK: .cfi_startproc
143143 ; CHECK: .L[[LABEL:.*]]:
144144 ; CHECK: ceb %f0, 0(%r2)
145 ; CHECK-NEXT: j{{g?}}nhe .L[[LABEL]]
145 ; CHECK-NEXT: jnhe .L[[LABEL]]
146146 br label %loop
147147 loop:
148148 %val = load volatile float *%src
157157 ; CHECK: .cfi_startproc
158158 ; CHECK: .L[[LABEL:.*]]:
159159 ; CHECK: ceb %f0, 0(%r2)
160 ; CHECK-NEXT: j{{g?}}nle .L[[LABEL]]
160 ; CHECK-NEXT: jnle .L[[LABEL]]
161161 br label %loop
162162 loop:
163163 %val = load volatile float *%src
172172 ; CHECK: .cfi_startproc
173173 ; CHECK: .L[[LABEL:.*]]:
174174 ; CHECK: ceb %f0, 0(%r2)
175 ; CHECK-NEXT: j{{g?}}nl .L[[LABEL]]
175 ; CHECK-NEXT: jnl .L[[LABEL]]
176176 br label %loop
177177 loop:
178178 %val = load volatile float *%src
189189 ; CHECK: .cfi_startproc
190190 ; CHECK: .L[[LABEL:.*]]:
191191 ; CHECK: ceb %f0, 0(%r2)
192 ; CHECK-NEXT: j{{g?}}no .L[[LABEL]]
192 ; CHECK-NEXT: jno .L[[LABEL]]
193193 br label %loop
194194 loop:
195195 %val = load volatile float *%src
206206 ; CHECK: .cfi_startproc
207207 ; CHECK: .L[[LABEL:.*]]:
208208 ; CHECK: ceb %f0, 0(%r2)
209 ; CHECK-NEXT: j{{g?}}o .L[[LABEL]]
209 ; CHECK-NEXT: jo .L[[LABEL]]
210210 br label %loop
211211 loop:
212212 %val = load volatile float *%src
55 ; CHECK: f1:
66 ; CHECK: ahi %r4, -1
77 ; CHECK: clfi %r4, 5
8 ; CHECK-NEXT: j{{g?}}h
8 ; CHECK-NEXT: jh
99 ; CHECK: llgfr [[OP64:%r[0-5]]], %r4
1010 ; CHECK: sllg [[INDEX:%r[1-5]]], [[OP64]], 3
1111 ; CHECK: larl [[BASE:%r[1-5]]]
1818 ; CHECK-MAIN: rll %r2, [[OLD]], 8([[SHIFT]])
1919 ; CHECK-MAIN: risbg %r4, %r2, 32, 55, 0
2020 ; CHECK-MAIN: cr %r2, %r4
21 ; CHECK-MAIN: j{{g?}}lh [[EXIT:\.[^ ]*]]
21 ; CHECK-MAIN: jlh [[EXIT:\.[^ ]*]]
2222 ; CHECK-MAIN: risbg %r5, %r2, 32, 55, 0
2323 ; CHECK-MAIN: rll [[NEW:%r[0-9]+]], %r5, -8({{%r[1-9]+}})
2424 ; CHECK-MAIN: cs [[OLD]], [[NEW]], 0(%r3)
25 ; CHECK-MAIN: j{{g?}}lh [[LOOP]]
25 ; CHECK-MAIN: jlh [[LOOP]]
2626 ; CHECK-MAIN: [[EXIT]]:
2727 ; CHECK-MAIN-NOT: %r2
2828 ; CHECK-MAIN: br %r14
1818 ; CHECK-MAIN: rll %r2, [[OLD]], 16([[SHIFT]])
1919 ; CHECK-MAIN: risbg %r4, %r2, 32, 47, 0
2020 ; CHECK-MAIN: cr %r2, %r4
21 ; CHECK-MAIN: j{{g?}}lh [[EXIT:\.[^ ]*]]
21 ; CHECK-MAIN: jlh [[EXIT:\.[^ ]*]]
2222 ; CHECK-MAIN: risbg %r5, %r2, 32, 47, 0
2323 ; CHECK-MAIN: rll [[NEW:%r[0-9]+]], %r5, -16({{%r[1-9]+}})
2424 ; CHECK-MAIN: cs [[OLD]], [[NEW]], 0(%r3)
25 ; CHECK-MAIN: j{{g?}}lh [[LOOP]]
25 ; CHECK-MAIN: jlh [[LOOP]]
2626 ; CHECK-MAIN: [[EXIT]]:
2727 ; CHECK-MAIN-NOT: %r2
2828 ; CHECK-MAIN: br %r14
55 define i64 @f1(i64 %a, i64 %b, float %f1, float %f2) {
66 ; CHECK: f1:
77 ; CHECK: cebr %f0, %f2
8 ; CHECK-NEXT: j{{g?}}e
8 ; CHECK-NEXT: je
99 ; CHECK: lgr %r2, %r3
1010 ; CHECK: br %r14
1111 %cond = fcmp oeq float %f1, %f2
1717 define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: ceb %f0, 0(%r4)
20 ; CHECK-NEXT: j{{g?}}e
20 ; CHECK-NEXT: je
2121 ; CHECK: lgr %r2, %r3
2222 ; CHECK: br %r14
2323 %f2 = load float *%ptr
3030 define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: ceb %f0, 4092(%r4)
33 ; CHECK-NEXT: j{{g?}}e
33 ; CHECK-NEXT: je
3434 ; CHECK: lgr %r2, %r3
3535 ; CHECK: br %r14
3636 %ptr = getelementptr float *%base, i64 1023
4646 ; CHECK: f4:
4747 ; CHECK: aghi %r4, 4096
4848 ; CHECK: ceb %f0, 0(%r4)
49 ; CHECK-NEXT: j{{g?}}e
49 ; CHECK-NEXT: je
5050 ; CHECK: lgr %r2, %r3
5151 ; CHECK: br %r14
5252 %ptr = getelementptr float *%base, i64 1024
6161 ; CHECK: f5:
6262 ; CHECK: aghi %r4, -4
6363 ; CHECK: ceb %f0, 0(%r4)
64 ; CHECK-NEXT: j{{g?}}e
64 ; CHECK-NEXT: je
6565 ; CHECK: lgr %r2, %r3
6666 ; CHECK: br %r14
6767 %ptr = getelementptr float *%base, i64 -1
7676 ; CHECK: f6:
7777 ; CHECK: sllg %r1, %r5, 2
7878 ; CHECK: ceb %f0, 400(%r1,%r4)
79 ; CHECK-NEXT: j{{g?}}e
79 ; CHECK-NEXT: je
8080 ; CHECK: lgr %r2, %r3
8181 ; CHECK: br %r14
8282 %ptr1 = getelementptr float *%base, i64 %index
55 define i64 @f1(i64 %a, i64 %b, double %f1, double %f2) {
66 ; CHECK: f1:
77 ; CHECK: cdbr %f0, %f2
8 ; CHECK-NEXT: j{{g?}}e
8 ; CHECK-NEXT: je
99 ; CHECK: lgr %r2, %r3
1010 ; CHECK: br %r14
1111 %cond = fcmp oeq double %f1, %f2
1717 define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: cdb %f0, 0(%r4)
20 ; CHECK-NEXT: j{{g?}}e
20 ; CHECK-NEXT: je
2121 ; CHECK: lgr %r2, %r3
2222 ; CHECK: br %r14
2323 %f2 = load double *%ptr
3030 define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: cdb %f0, 4088(%r4)
33 ; CHECK-NEXT: j{{g?}}e
33 ; CHECK-NEXT: je
3434 ; CHECK: lgr %r2, %r3
3535 ; CHECK: br %r14
3636 %ptr = getelementptr double *%base, i64 511
4646 ; CHECK: f4:
4747 ; CHECK: aghi %r4, 4096
4848 ; CHECK: cdb %f0, 0(%r4)
49 ; CHECK-NEXT: j{{g?}}e
49 ; CHECK-NEXT: je
5050 ; CHECK: lgr %r2, %r3
5151 ; CHECK: br %r14
5252 %ptr = getelementptr double *%base, i64 512
6161 ; CHECK: f5:
6262 ; CHECK: aghi %r4, -8
6363 ; CHECK: cdb %f0, 0(%r4)
64 ; CHECK-NEXT: j{{g?}}e
64 ; CHECK-NEXT: je
6565 ; CHECK: lgr %r2, %r3
6666 ; CHECK: br %r14
6767 %ptr = getelementptr double *%base, i64 -1
7676 ; CHECK: f6:
7777 ; CHECK: sllg %r1, %r5, 3
7878 ; CHECK: cdb %f0, 800(%r1,%r4)
79 ; CHECK-NEXT: j{{g?}}e
79 ; CHECK-NEXT: je
8080 ; CHECK: lgr %r2, %r3
8181 ; CHECK: br %r14
8282 %ptr1 = getelementptr double *%base, i64 %index
88 ; CHECK: ld %f1, 0(%r4)
99 ; CHECK: ld %f3, 8(%r4)
1010 ; CHECK: cxbr %f1, %f0
11 ; CHECK-NEXT: j{{g?}}e
11 ; CHECK-NEXT: je
1212 ; CHECK: lgr %r2, %r3
1313 ; CHECK: br %r14
1414 %f2x = fpext float %f2 to fp128
55 define double @f1(double %a, double %b, i32 %i1, i32 %i2) {
66 ; CHECK: f1:
77 ; CHECK: cr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp slt i32 %i1, %i2
1717 define double @f2(double %a, double %b, i32 %i1, i32 *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: c %r2, 0(%r3)
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %i2 = load i32 *%ptr
3030 define double @f3(double %a, double %b, i32 %i1, i32 *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: c %r2, 4092(%r3)
33 ; CHECK-NEXT: j{{g?}}l
33 ; CHECK-NEXT: jl
3434 ; CHECK: ldr %f0, %f2
3535 ; CHECK: br %r14
3636 %ptr = getelementptr i32 *%base, i64 1023
4444 define double @f4(double %a, double %b, i32 %i1, i32 *%base) {
4545 ; CHECK: f4:
4646 ; CHECK: cy %r2, 4096(%r3)
47 ; CHECK-NEXT: j{{g?}}l
47 ; CHECK-NEXT: jl
4848 ; CHECK: ldr %f0, %f2
4949 ; CHECK: br %r14
5050 %ptr = getelementptr i32 *%base, i64 1024
5858 define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
5959 ; CHECK: f5:
6060 ; CHECK: cy %r2, 524284(%r3)
61 ; CHECK-NEXT: j{{g?}}l
61 ; CHECK-NEXT: jl
6262 ; CHECK: ldr %f0, %f2
6363 ; CHECK: br %r14
6464 %ptr = getelementptr i32 *%base, i64 131071
7474 ; CHECK: f6:
7575 ; CHECK: agfi %r3, 524288
7676 ; CHECK: c %r2, 0(%r3)
77 ; CHECK-NEXT: j{{g?}}l
77 ; CHECK-NEXT: jl
7878 ; CHECK: ldr %f0, %f2
7979 ; CHECK: br %r14
8080 %ptr = getelementptr i32 *%base, i64 131072
8888 define double @f7(double %a, double %b, i32 %i1, i32 *%base) {
8989 ; CHECK: f7:
9090 ; CHECK: cy %r2, -4(%r3)
91 ; CHECK-NEXT: j{{g?}}l
91 ; CHECK-NEXT: jl
9292 ; CHECK: ldr %f0, %f2
9393 ; CHECK: br %r14
9494 %ptr = getelementptr i32 *%base, i64 -1
102102 define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
103103 ; CHECK: f8:
104104 ; CHECK: cy %r2, -524288(%r3)
105 ; CHECK-NEXT: j{{g?}}l
105 ; CHECK-NEXT: jl
106106 ; CHECK: ldr %f0, %f2
107107 ; CHECK: br %r14
108108 %ptr = getelementptr i32 *%base, i64 -131072
118118 ; CHECK: f9:
119119 ; CHECK: agfi %r3, -524292
120120 ; CHECK: c %r2, 0(%r3)
121 ; CHECK-NEXT: j{{g?}}l
121 ; CHECK-NEXT: jl
122122 ; CHECK: ldr %f0, %f2
123123 ; CHECK: br %r14
124124 %ptr = getelementptr i32 *%base, i64 -131073
132132 define double @f10(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
133133 ; CHECK: f10:
134134 ; CHECK: c %r2, 4092({{%r4,%r3|%r3,%r4}})
135 ; CHECK-NEXT: j{{g?}}l
135 ; CHECK-NEXT: jl
136136 ; CHECK: ldr %f0, %f2
137137 ; CHECK: br %r14
138138 %add1 = add i64 %base, %index
148148 define double @f11(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
149149 ; CHECK: f11:
150150 ; CHECK: cy %r2, 4096({{%r4,%r3|%r3,%r4}})
151 ; CHECK-NEXT: j{{g?}}l
151 ; CHECK-NEXT: jl
152152 ; CHECK: ldr %f0, %f2
153153 ; CHECK: br %r14
154154 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i32 %i1, i32 %i2) {
66 ; CHECK: f1:
77 ; CHECK: clr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp ult i32 %i1, %i2
1717 define double @f2(double %a, double %b, i32 %i1, i32 *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: cl %r2, 0(%r3)
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %i2 = load i32 *%ptr
3030 define double @f3(double %a, double %b, i32 %i1, i32 *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: cl %r2, 4092(%r3)
33 ; CHECK-NEXT: j{{g?}}l
33 ; CHECK-NEXT: jl
3434 ; CHECK: ldr %f0, %f2
3535 ; CHECK: br %r14
3636 %ptr = getelementptr i32 *%base, i64 1023
4444 define double @f4(double %a, double %b, i32 %i1, i32 *%base) {
4545 ; CHECK: f4:
4646 ; CHECK: cly %r2, 4096(%r3)
47 ; CHECK-NEXT: j{{g?}}l
47 ; CHECK-NEXT: jl
4848 ; CHECK: ldr %f0, %f2
4949 ; CHECK: br %r14
5050 %ptr = getelementptr i32 *%base, i64 1024
5858 define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
5959 ; CHECK: f5:
6060 ; CHECK: cly %r2, 524284(%r3)
61 ; CHECK-NEXT: j{{g?}}l
61 ; CHECK-NEXT: jl
6262 ; CHECK: ldr %f0, %f2
6363 ; CHECK: br %r14
6464 %ptr = getelementptr i32 *%base, i64 131071
7474 ; CHECK: f6:
7575 ; CHECK: agfi %r3, 524288
7676 ; CHECK: cl %r2, 0(%r3)
77 ; CHECK-NEXT: j{{g?}}l
77 ; CHECK-NEXT: jl
7878 ; CHECK: ldr %f0, %f2
7979 ; CHECK: br %r14
8080 %ptr = getelementptr i32 *%base, i64 131072
8888 define double @f7(double %a, double %b, i32 %i1, i32 *%base) {
8989 ; CHECK: f7:
9090 ; CHECK: cly %r2, -4(%r3)
91 ; CHECK-NEXT: j{{g?}}l
91 ; CHECK-NEXT: jl
9292 ; CHECK: ldr %f0, %f2
9393 ; CHECK: br %r14
9494 %ptr = getelementptr i32 *%base, i64 -1
102102 define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
103103 ; CHECK: f8:
104104 ; CHECK: cly %r2, -524288(%r3)
105 ; CHECK-NEXT: j{{g?}}l
105 ; CHECK-NEXT: jl
106106 ; CHECK: ldr %f0, %f2
107107 ; CHECK: br %r14
108108 %ptr = getelementptr i32 *%base, i64 -131072
118118 ; CHECK: f9:
119119 ; CHECK: agfi %r3, -524292
120120 ; CHECK: cl %r2, 0(%r3)
121 ; CHECK-NEXT: j{{g?}}l
121 ; CHECK-NEXT: jl
122122 ; CHECK: ldr %f0, %f2
123123 ; CHECK: br %r14
124124 %ptr = getelementptr i32 *%base, i64 -131073
132132 define double @f10(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
133133 ; CHECK: f10:
134134 ; CHECK: cl %r2, 4092({{%r4,%r3|%r3,%r4}})
135 ; CHECK-NEXT: j{{g?}}l
135 ; CHECK-NEXT: jl
136136 ; CHECK: ldr %f0, %f2
137137 ; CHECK: br %r14
138138 %add1 = add i64 %base, %index
148148 define double @f11(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
149149 ; CHECK: f11:
150150 ; CHECK: cly %r2, 4096({{%r4,%r3|%r3,%r4}})
151 ; CHECK-NEXT: j{{g?}}l
151 ; CHECK-NEXT: jl
152152 ; CHECK: ldr %f0, %f2
153153 ; CHECK: br %r14
154154 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i64 %i1, i32 %unext) {
66 ; CHECK: f1:
77 ; CHECK: cgfr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %i2 = sext i32 %unext to i64
2929 define double @f3(double %a, double %b, i64 %i1, i32 %unext) {
3030 ; CHECK: f3:
3131 ; CHECK: cgfr %r2, %r3
32 ; CHECK-NEXT: j{{g?}}e
32 ; CHECK-NEXT: je
3333 ; CHECK: ldr %f0, %f2
3434 ; CHECK: br %r14
3535 %i2 = sext i32 %unext to i64
4242 define double @f4(double %a, double %b, i64 %i1, i32 %unext) {
4343 ; CHECK: f4:
4444 ; CHECK: cgfr %r2, %r3
45 ; CHECK-NEXT: j{{g?}}lh
45 ; CHECK-NEXT: jlh
4646 ; CHECK: ldr %f0, %f2
4747 ; CHECK: br %r14
4848 %i2 = sext i32 %unext to i64
5555 define double @f5(double %a, double %b, i64 %i1, i32 *%ptr) {
5656 ; CHECK: f5:
5757 ; CHECK: cgf %r2, 0(%r3)
58 ; CHECK-NEXT: j{{g?}}l
58 ; CHECK-NEXT: jl
5959 ; CHECK: ldr %f0, %f2
6060 ; CHECK: br %r14
6161 %unext = load i32 *%ptr
8181 define double @f7(double %a, double %b, i64 %i1, i32 *%ptr) {
8282 ; CHECK: f7:
8383 ; CHECK: cgf %r2, 0(%r3)
84 ; CHECK-NEXT: j{{g?}}e
84 ; CHECK-NEXT: je
8585 ; CHECK: ldr %f0, %f2
8686 ; CHECK: br %r14
8787 %unext = load i32 *%ptr
9595 define double @f8(double %a, double %b, i64 %i1, i32 *%ptr) {
9696 ; CHECK: f8:
9797 ; CHECK: cgf %r2, 0(%r3)
98 ; CHECK-NEXT: j{{g?}}lh
98 ; CHECK-NEXT: jlh
9999 ; CHECK: ldr %f0, %f2
100100 ; CHECK: br %r14
101101 %unext = load i32 *%ptr
109109 define double @f9(double %a, double %b, i64 %i1, i32 *%base) {
110110 ; CHECK: f9:
111111 ; CHECK: cgf %r2, 524284(%r3)
112 ; CHECK-NEXT: j{{g?}}l
112 ; CHECK-NEXT: jl
113113 ; CHECK: ldr %f0, %f2
114114 ; CHECK: br %r14
115115 %ptr = getelementptr i32 *%base, i64 131071
126126 ; CHECK: f10:
127127 ; CHECK: agfi %r3, 524288
128128 ; CHECK: cgf %r2, 0(%r3)
129 ; CHECK-NEXT: j{{g?}}l
129 ; CHECK-NEXT: jl
130130 ; CHECK: ldr %f0, %f2
131131 ; CHECK: br %r14
132132 %ptr = getelementptr i32 *%base, i64 131072
141141 define double @f11(double %a, double %b, i64 %i1, i32 *%base) {
142142 ; CHECK: f11:
143143 ; CHECK: cgf %r2, -4(%r3)
144 ; CHECK-NEXT: j{{g?}}l
144 ; CHECK-NEXT: jl
145145 ; CHECK: ldr %f0, %f2
146146 ; CHECK: br %r14
147147 %ptr = getelementptr i32 *%base, i64 -1
156156 define double @f12(double %a, double %b, i64 %i1, i32 *%base) {
157157 ; CHECK: f12:
158158 ; CHECK: cgf %r2, -524288(%r3)
159 ; CHECK-NEXT: j{{g?}}l
159 ; CHECK-NEXT: jl
160160 ; CHECK: ldr %f0, %f2
161161 ; CHECK: br %r14
162162 %ptr = getelementptr i32 *%base, i64 -131072
173173 ; CHECK: f13:
174174 ; CHECK: agfi %r3, -524292
175175 ; CHECK: cgf %r2, 0(%r3)
176 ; CHECK-NEXT: j{{g?}}l
176 ; CHECK-NEXT: jl
177177 ; CHECK: ldr %f0, %f2
178178 ; CHECK: br %r14
179179 %ptr = getelementptr i32 *%base, i64 -131073
188188 define double @f14(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
189189 ; CHECK: f14:
190190 ; CHECK: cgf %r2, 524284({{%r4,%r3|%r3,%r4}})
191 ; CHECK-NEXT: j{{g?}}l
191 ; CHECK-NEXT: jl
192192 ; CHECK: ldr %f0, %f2
193193 ; CHECK: br %r14
194194 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i64 %i1, i32 %unext) {
66 ; CHECK: f1:
77 ; CHECK: clgfr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %i2 = zext i32 %unext to i64
1818 define double @f2(double %a, double %b, i64 %i1, i64 %unext) {
1919 ; CHECK: f2:
2020 ; CHECK: clgfr %r2, %r3
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %i2 = and i64 %unext, 4294967295
5353 define double @f5(double %a, double %b, i64 %i1, i32 %unext) {
5454 ; CHECK: f5:
5555 ; CHECK: clgfr %r2, %r3
56 ; CHECK-NEXT: j{{g?}}e
56 ; CHECK-NEXT: je
5757 ; CHECK: ldr %f0, %f2
5858 ; CHECK: br %r14
5959 %i2 = zext i32 %unext to i64
6666 define double @f6(double %a, double %b, i64 %i1, i64 %unext) {
6767 ; CHECK: f6:
6868 ; CHECK: clgfr %r2, %r3
69 ; CHECK-NEXT: j{{g?}}e
69 ; CHECK-NEXT: je
7070 ; CHECK: ldr %f0, %f2
7171 ; CHECK: br %r14
7272 %i2 = and i64 %unext, 4294967295
7979 define double @f7(double %a, double %b, i64 %i1, i32 %unext) {
8080 ; CHECK: f7:
8181 ; CHECK: clgfr %r2, %r3
82 ; CHECK-NEXT: j{{g?}}lh
82 ; CHECK-NEXT: jlh
8383 ; CHECK: ldr %f0, %f2
8484 ; CHECK: br %r14
8585 %i2 = zext i32 %unext to i64
9292 define double @f8(double %a, double %b, i64 %i1, i64 %unext) {
9393 ; CHECK: f8:
9494 ; CHECK: clgfr %r2, %r3
95 ; CHECK-NEXT: j{{g?}}lh
95 ; CHECK-NEXT: jlh
9696 ; CHECK: ldr %f0, %f2
9797 ; CHECK: br %r14
9898 %i2 = and i64 %unext, 4294967295
105105 define double @f9(double %a, double %b, i64 %i1, i32 *%ptr) {
106106 ; CHECK: f9:
107107 ; CHECK: clgf %r2, 0(%r3)
108 ; CHECK-NEXT: j{{g?}}l
108 ; CHECK-NEXT: jl
109109 ; CHECK: ldr %f0, %f2
110110 ; CHECK: br %r14
111111 %unext = load i32 *%ptr
131131 define double @f11(double %a, double %b, i64 %i1, i32 *%ptr) {
132132 ; CHECK: f11:
133133 ; CHECK: clgf %r2, 0(%r3)
134 ; CHECK-NEXT: j{{g?}}e
134 ; CHECK-NEXT: je
135135 ; CHECK: ldr %f0, %f2
136136 ; CHECK: br %r14
137137 %unext = load i32 *%ptr
145145 define double @f12(double %a, double %b, i64 %i1, i32 *%ptr) {
146146 ; CHECK: f12:
147147 ; CHECK: clgf %r2, 0(%r3)
148 ; CHECK-NEXT: j{{g?}}lh
148 ; CHECK-NEXT: jlh
149149 ; CHECK: ldr %f0, %f2
150150 ; CHECK: br %r14
151151 %unext = load i32 *%ptr
159159 define double @f13(double %a, double %b, i64 %i1, i32 *%base) {
160160 ; CHECK: f13:
161161 ; CHECK: clgf %r2, 524284(%r3)
162 ; CHECK-NEXT: j{{g?}}l
162 ; CHECK-NEXT: jl
163163 ; CHECK: ldr %f0, %f2
164164 ; CHECK: br %r14
165165 %ptr = getelementptr i32 *%base, i64 131071
176176 ; CHECK: f14:
177177 ; CHECK: agfi %r3, 524288
178178 ; CHECK: clgf %r2, 0(%r3)
179 ; CHECK-NEXT: j{{g?}}l
179 ; CHECK-NEXT: jl
180180 ; CHECK: ldr %f0, %f2
181181 ; CHECK: br %r14
182182 %ptr = getelementptr i32 *%base, i64 131072
191191 define double @f15(double %a, double %b, i64 %i1, i32 *%base) {
192192 ; CHECK: f15:
193193 ; CHECK: clgf %r2, -4(%r3)
194 ; CHECK-NEXT: j{{g?}}l
194 ; CHECK-NEXT: jl
195195 ; CHECK: ldr %f0, %f2
196196 ; CHECK: br %r14
197197 %ptr = getelementptr i32 *%base, i64 -1
206206 define double @f16(double %a, double %b, i64 %i1, i32 *%base) {
207207 ; CHECK: f16:
208208 ; CHECK: clgf %r2, -524288(%r3)
209 ; CHECK-NEXT: j{{g?}}l
209 ; CHECK-NEXT: jl
210210 ; CHECK: ldr %f0, %f2
211211 ; CHECK: br %r14
212212 %ptr = getelementptr i32 *%base, i64 -131072
223223 ; CHECK: f17:
224224 ; CHECK: agfi %r3, -524292
225225 ; CHECK: clgf %r2, 0(%r3)
226 ; CHECK-NEXT: j{{g?}}l
226 ; CHECK-NEXT: jl
227227 ; CHECK: ldr %f0, %f2
228228 ; CHECK: br %r14
229229 %ptr = getelementptr i32 *%base, i64 -131073
238238 define double @f18(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
239239 ; CHECK: f18:
240240 ; CHECK: clgf %r2, 524284({{%r4,%r3|%r3,%r4}})
241 ; CHECK-NEXT: j{{g?}}l
241 ; CHECK-NEXT: jl
242242 ; CHECK: ldr %f0, %f2
243243 ; CHECK: br %r14
244244 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i64 %i1, i64 %i2) {
66 ; CHECK: f1:
77 ; CHECK: cgr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp slt i64 %i1, %i2
1717 define double @f2(double %a, double %b, i64 %i1, i64 *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: cg %r2, 0(%r3)
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %i2 = load i64 *%ptr
3030 define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: cg %r2, 524280(%r3)
33 ; CHECK-NEXT: j{{g?}}l
33 ; CHECK-NEXT: jl
3434 ; CHECK: ldr %f0, %f2
3535 ; CHECK: br %r14
3636 %ptr = getelementptr i64 *%base, i64 65535
4646 ; CHECK: f4:
4747 ; CHECK: agfi %r3, 524288
4848 ; CHECK: cg %r2, 0(%r3)
49 ; CHECK-NEXT: j{{g?}}l
49 ; CHECK-NEXT: jl
5050 ; CHECK: ldr %f0, %f2
5151 ; CHECK: br %r14
5252 %ptr = getelementptr i64 *%base, i64 65536
6060 define double @f5(double %a, double %b, i64 %i1, i64 *%base) {
6161 ; CHECK: f5:
6262 ; CHECK: cg %r2, -8(%r3)
63 ; CHECK-NEXT: j{{g?}}l
63 ; CHECK-NEXT: jl
6464 ; CHECK: ldr %f0, %f2
6565 ; CHECK: br %r14
6666 %ptr = getelementptr i64 *%base, i64 -1
7474 define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
7575 ; CHECK: f6:
7676 ; CHECK: cg %r2, -524288(%r3)
77 ; CHECK-NEXT: j{{g?}}l
77 ; CHECK-NEXT: jl
7878 ; CHECK: ldr %f0, %f2
7979 ; CHECK: br %r14
8080 %ptr = getelementptr i64 *%base, i64 -65536
9090 ; CHECK: f7:
9191 ; CHECK: agfi %r3, -524296
9292 ; CHECK: cg %r2, 0(%r3)
93 ; CHECK-NEXT: j{{g?}}l
93 ; CHECK-NEXT: jl
9494 ; CHECK: ldr %f0, %f2
9595 ; CHECK: br %r14
9696 %ptr = getelementptr i64 *%base, i64 -65537
104104 define double @f8(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
105105 ; CHECK: f8:
106106 ; CHECK: cg %r2, 524280({{%r4,%r3|%r3,%r4}})
107 ; CHECK-NEXT: j{{g?}}l
107 ; CHECK-NEXT: jl
108108 ; CHECK: ldr %f0, %f2
109109 ; CHECK: br %r14
110110 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i64 %i1, i64 %i2) {
66 ; CHECK: f1:
77 ; CHECK: clgr %r2, %r3
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp ult i64 %i1, %i2
1717 define double @f2(double %a, double %b, i64 %i1, i64 *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: clg %r2, 0(%r3)
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %i2 = load i64 *%ptr
3030 define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
3131 ; CHECK: f3:
3232 ; CHECK: clg %r2, 524280(%r3)
33 ; CHECK-NEXT: j{{g?}}l
33 ; CHECK-NEXT: jl
3434 ; CHECK: ldr %f0, %f2
3535 ; CHECK: br %r14
3636 %ptr = getelementptr i64 *%base, i64 65535
4646 ; CHECK: f4:
4747 ; CHECK: agfi %r3, 524288
4848 ; CHECK: clg %r2, 0(%r3)
49 ; CHECK-NEXT: j{{g?}}l
49 ; CHECK-NEXT: jl
5050 ; CHECK: ldr %f0, %f2
5151 ; CHECK: br %r14
5252 %ptr = getelementptr i64 *%base, i64 65536
6060 define double @f5(double %a, double %b, i64 %i1, i64 *%base) {
6161 ; CHECK: f5:
6262 ; CHECK: clg %r2, -8(%r3)
63 ; CHECK-NEXT: j{{g?}}l
63 ; CHECK-NEXT: jl
6464 ; CHECK: ldr %f0, %f2
6565 ; CHECK: br %r14
6666 %ptr = getelementptr i64 *%base, i64 -1
7474 define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
7575 ; CHECK: f6:
7676 ; CHECK: clg %r2, -524288(%r3)
77 ; CHECK-NEXT: j{{g?}}l
77 ; CHECK-NEXT: jl
7878 ; CHECK: ldr %f0, %f2
7979 ; CHECK: br %r14
8080 %ptr = getelementptr i64 *%base, i64 -65536
9090 ; CHECK: f7:
9191 ; CHECK: agfi %r3, -524296
9292 ; CHECK: clg %r2, 0(%r3)
93 ; CHECK-NEXT: j{{g?}}l
93 ; CHECK-NEXT: jl
9494 ; CHECK: ldr %f0, %f2
9595 ; CHECK: br %r14
9696 %ptr = getelementptr i64 *%base, i64 -65537
104104 define double @f8(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
105105 ; CHECK: f8:
106106 ; CHECK: clg %r2, 524280({{%r4,%r3|%r3,%r4}})
107 ; CHECK-NEXT: j{{g?}}l
107 ; CHECK-NEXT: jl
108108 ; CHECK: ldr %f0, %f2
109109 ; CHECK: br %r14
110110 %add1 = add i64 %base, %index
55 define double @f1(double %a, double %b, i32 %i1) {
66 ; CHECK: f1:
77 ; CHECK: chi %r2, 0
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp slt i32 %i1, 0
1717 define double @f2(double %a, double %b, i32 %i1) {
1818 ; CHECK: f2:
1919 ; CHECK: chi %r2, 1
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %cond = icmp slt i32 %i1, 1
2929 define double @f3(double %a, double %b, i32 %i1) {
3030 ; CHECK: f3:
3131 ; CHECK: chi %r2, 32767
32 ; CHECK-NEXT: j{{g?}}l
32 ; CHECK-NEXT: jl
3333 ; CHECK: ldr %f0, %f2
3434 ; CHECK: br %r14
3535 %cond = icmp slt i32 %i1, 32767
4141 define double @f4(double %a, double %b, i32 %i1) {
4242 ; CHECK: f4:
4343 ; CHECK: cfi %r2, 32768
44 ; CHECK-NEXT: j{{g?}}l
44 ; CHECK-NEXT: jl
4545 ; CHECK: ldr %f0, %f2
4646 ; CHECK: br %r14
4747 %cond = icmp slt i32 %i1, 32768
5353 define double @f5(double %a, double %b, i32 %i1) {
5454 ; CHECK: f5:
5555 ; CHECK: cfi %r2, 2147483647
56 ; CHECK-NEXT: j{{g?}}e
56 ; CHECK-NEXT: je
5757 ; CHECK: ldr %f0, %f2
5858 ; CHECK: br %r14
5959 %cond = icmp eq i32 %i1, 2147483647
6565 define double @f6(double %a, double %b, i32 %i1) {
6666 ; CHECK: f6:
6767 ; CHECK: cfi %r2, -2147483648
68 ; CHECK-NEXT: j{{g?}}e
68 ; CHECK-NEXT: je
6969 ; CHECK: ldr %f0, %f2
7070 ; CHECK: br %r14
7171 %cond = icmp eq i32 %i1, 2147483648
7777 define double @f7(double %a, double %b, i32 %i1) {
7878 ; CHECK: f7:
7979 ; CHECK: chi %r2, -1
80 ; CHECK-NEXT: j{{g?}}l
80 ; CHECK-NEXT: jl
8181 ; CHECK: ldr %f0, %f2
8282 ; CHECK: br %r14
8383 %cond = icmp slt i32 %i1, -1
8989 define double @f8(double %a, double %b, i32 %i1) {
9090 ; CHECK: f8:
9191 ; CHECK: chi %r2, -32768
92 ; CHECK-NEXT: j{{g?}}l
92 ; CHECK-NEXT: jl
9393 ; CHECK: ldr %f0, %f2
9494 ; CHECK: br %r14
9595 %cond = icmp slt i32 %i1, -32768
101101 define double @f9(double %a, double %b, i32 %i1) {
102102 ; CHECK: f9:
103103 ; CHECK: cfi %r2, -32769
104 ; CHECK-NEXT: j{{g?}}l
104 ; CHECK-NEXT: jl
105105 ; CHECK: ldr %f0, %f2
106106 ; CHECK: br %r14
107107 %cond = icmp slt i32 %i1, -32769
113113 define double @f10(double %a, double %b, i32 %i1) {
114114 ; CHECK: f10:
115115 ; CHECK: cfi %r2, -2147483648
116 ; CHECK-NEXT: j{{g?}}e
116 ; CHECK-NEXT: je
117117 ; CHECK: ldr %f0, %f2
118118 ; CHECK: br %r14
119119 %cond = icmp eq i32 %i1, -2147483648
125125 define double @f11(double %a, double %b, i32 %i1) {
126126 ; CHECK: f11:
127127 ; CHECK: cfi %r2, 2147483647
128 ; CHECK-NEXT: j{{g?}}e
128 ; CHECK-NEXT: je
129129 ; CHECK: ldr %f0, %f2
130130 ; CHECK: br %r14
131131 %cond = icmp eq i32 %i1, -2147483649
66 define double @f1(double %a, double %b, i32 %i1) {
77 ; CHECK: f1:
88 ; CHECK: clfi %r2, 1
9 ; CHECK-NEXT: j{{g?}}h
9 ; CHECK-NEXT: jh
1010 ; CHECK: ldr %f0, %f2
1111 ; CHECK: br %r14
1212 %cond = icmp ugt i32 %i1, 1
1818 define double @f2(double %a, double %b, i32 %i1) {
1919 ; CHECK: f2:
2020 ; CHECK: clfi %r2, 4294967280
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %cond = icmp ult i32 %i1, 4294967280
55 define double @f1(double %a, double %b, i64 %i1) {
66 ; CHECK: f1:
77 ; CHECK: cghi %r2, 0
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp slt i64 %i1, 0
1717 define double @f2(double %a, double %b, i64 %i1) {
1818 ; CHECK: f2:
1919 ; CHECK: cghi %r2, 1
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %cond = icmp slt i64 %i1, 1
2929 define double @f3(double %a, double %b, i64 %i1) {
3030 ; CHECK: f3:
3131 ; CHECK: cghi %r2, 32767
32 ; CHECK-NEXT: j{{g?}}l
32 ; CHECK-NEXT: jl
3333 ; CHECK: ldr %f0, %f2
3434 ; CHECK: br %r14
3535 %cond = icmp slt i64 %i1, 32767
4141 define double @f4(double %a, double %b, i64 %i1) {
4242 ; CHECK: f4:
4343 ; CHECK: cgfi %r2, 32768
44 ; CHECK-NEXT: j{{g?}}l
44 ; CHECK-NEXT: jl
4545 ; CHECK: ldr %f0, %f2
4646 ; CHECK: br %r14
4747 %cond = icmp slt i64 %i1, 32768
5353 define double @f5(double %a, double %b, i64 %i1) {
5454 ; CHECK: f5:
5555 ; CHECK: cgfi %r2, 2147483647
56 ; CHECK-NEXT: j{{g?}}l
56 ; CHECK-NEXT: jl
5757 ; CHECK: ldr %f0, %f2
5858 ; CHECK: br %r14
5959 %cond = icmp slt i64 %i1, 2147483647
6565 define double @f6(double %a, double %b, i64 %i1) {
6666 ; CHECK: f6:
6767 ; CHECK: cgr
68 ; CHECK-NEXT: j{{g?}}l
68 ; CHECK-NEXT: jl
6969 ; CHECK: ldr %f0, %f2
7070 ; CHECK: br %r14
7171 %cond = icmp slt i64 %i1, 2147483648
7777 define double @f7(double %a, double %b, i64 %i1) {
7878 ; CHECK: f7:
7979 ; CHECK: cghi %r2, -1
80 ; CHECK-NEXT: j{{g?}}l
80 ; CHECK-NEXT: jl
8181 ; CHECK: ldr %f0, %f2
8282 ; CHECK: br %r14
8383 %cond = icmp slt i64 %i1, -1
8989 define double @f8(double %a, double %b, i64 %i1) {
9090 ; CHECK: f8:
9191 ; CHECK: cghi %r2, -32768
92 ; CHECK-NEXT: j{{g?}}l
92 ; CHECK-NEXT: jl
9393 ; CHECK: ldr %f0, %f2
9494 ; CHECK: br %r14
9595 %cond = icmp slt i64 %i1, -32768
101101 define double @f9(double %a, double %b, i64 %i1) {
102102 ; CHECK: f9:
103103 ; CHECK: cgfi %r2, -32769
104 ; CHECK-NEXT: j{{g?}}l
104 ; CHECK-NEXT: jl
105105 ; CHECK: ldr %f0, %f2
106106 ; CHECK: br %r14
107107 %cond = icmp slt i64 %i1, -32769
113113 define double @f10(double %a, double %b, i64 %i1) {
114114 ; CHECK: f10:
115115 ; CHECK: cgfi %r2, -2147483648
116 ; CHECK-NEXT: j{{g?}}l
116 ; CHECK-NEXT: jl
117117 ; CHECK: ldr %f0, %f2
118118 ; CHECK: br %r14
119119 %cond = icmp slt i64 %i1, -2147483648
125125 define double @f11(double %a, double %b, i64 %i1) {
126126 ; CHECK: f11:
127127 ; CHECK: cgr
128 ; CHECK-NEXT: j{{g?}}l
128 ; CHECK-NEXT: jl
129129 ; CHECK: ldr %f0, %f2
130130 ; CHECK: br %r14
131131 %cond = icmp slt i64 %i1, -2147483649
66 define double @f1(double %a, double %b, i64 %i1) {
77 ; CHECK: f1:
88 ; CHECK: clgfi %r2, 1
9 ; CHECK-NEXT: j{{g?}}h
9 ; CHECK-NEXT: jh
1010 ; CHECK: ldr %f0, %f2
1111 ; CHECK: br %r14
1212 %cond = icmp ugt i64 %i1, 1
1818 define double @f2(double %a, double %b, i64 %i1) {
1919 ; CHECK: f2:
2020 ; CHECK: clgfi %r2, 4294967295
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %cond = icmp ult i64 %i1, 4294967295
3030 define double @f3(double %a, double %b, i64 %i1) {
3131 ; CHECK: f3:
3232 ; CHECK: clgr %r2,
33 ; CHECK-NEXT: j{{g?}}l
33 ; CHECK-NEXT: jl
3434 ; CHECK: ldr %f0, %f2
3535 ; CHECK: br %r14
3636 %cond = icmp ult i64 %i1, 4294967296
55 define double @f1(double %a, double %b, i64 %i1) {
66 ; CHECK: f1:
77 ; CHECK: cghi %r2, 0
8 ; CHECK-NEXT: j{{g?}}e
8 ; CHECK-NEXT: je
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp eq i64 %i1, 0
1717 define double @f2(double %a, double %b, i64 %i1) {
1818 ; CHECK: f2:
1919 ; CHECK: cghi %r2, 32767
20 ; CHECK-NEXT: j{{g?}}e
20 ; CHECK-NEXT: je
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %cond = icmp eq i64 %i1, 32767
2929 define double @f3(double %a, double %b, i64 %i1) {
3030 ; CHECK: f3:
3131 ; CHECK: cgfi %r2, 32768
32 ; CHECK-NEXT: j{{g?}}e
32 ; CHECK-NEXT: je
3333 ; CHECK: ldr %f0, %f2
3434 ; CHECK: br %r14
3535 %cond = icmp eq i64 %i1, 32768
4141 define double @f4(double %a, double %b, i64 %i1) {
4242 ; CHECK: f4:
4343 ; CHECK: cgfi %r2, 2147483647
44 ; CHECK-NEXT: j{{g?}}e
44 ; CHECK-NEXT: je
4545 ; CHECK: ldr %f0, %f2
4646 ; CHECK: br %r14
4747 %cond = icmp eq i64 %i1, 2147483647
5353 define double @f5(double %a, double %b, i64 %i1) {
5454 ; CHECK: f5:
5555 ; CHECK: clgfi %r2, 2147483648
56 ; CHECK-NEXT: j{{g?}}e
56 ; CHECK-NEXT: je
5757 ; CHECK: ldr %f0, %f2
5858 ; CHECK: br %r14
5959 %cond = icmp eq i64 %i1, 2147483648
6565 define double @f6(double %a, double %b, i64 %i1) {
6666 ; CHECK: f6:
6767 ; CHECK: clgfi %r2, 4294967295
68 ; CHECK-NEXT: j{{g?}}e
68 ; CHECK-NEXT: je
6969 ; CHECK: ldr %f0, %f2
7070 ; CHECK: br %r14
7171 %cond = icmp eq i64 %i1, 4294967295
7777 define double @f7(double %a, double %b, i64 %i1) {
7878 ; CHECK: f7:
7979 ; CHECK: cgr %r2,
80 ; CHECK-NEXT: j{{g?}}e
80 ; CHECK-NEXT: je
8181 ; CHECK: ldr %f0, %f2
8282 ; CHECK: br %r14
8383 %cond = icmp eq i64 %i1, 4294967296
8989 define double @f8(double %a, double %b, i64 %i1) {
9090 ; CHECK: f8:
9191 ; CHECK: cghi %r2, -1
92 ; CHECK-NEXT: j{{g?}}e
92 ; CHECK-NEXT: je
9393 ; CHECK: ldr %f0, %f2
9494 ; CHECK: br %r14
9595 %cond = icmp eq i64 %i1, -1
101101 define double @f9(double %a, double %b, i64 %i1) {
102102 ; CHECK: f9:
103103 ; CHECK: cghi %r2, -32768
104 ; CHECK-NEXT: j{{g?}}e
104 ; CHECK-NEXT: je
105105 ; CHECK: ldr %f0, %f2
106106 ; CHECK: br %r14
107107 %cond = icmp eq i64 %i1, -32768
113113 define double @f10(double %a, double %b, i64 %i1) {
114114 ; CHECK: f10:
115115 ; CHECK: cgfi %r2, -32769
116 ; CHECK-NEXT: j{{g?}}e
116 ; CHECK-NEXT: je
117117 ; CHECK: ldr %f0, %f2
118118 ; CHECK: br %r14
119119 %cond = icmp eq i64 %i1, -32769
125125 define double @f11(double %a, double %b, i64 %i1) {
126126 ; CHECK: f11:
127127 ; CHECK: cgfi %r2, -2147483648
128 ; CHECK-NEXT: j{{g?}}e
128 ; CHECK-NEXT: je
129129 ; CHECK: ldr %f0, %f2
130130 ; CHECK: br %r14
131131 %cond = icmp eq i64 %i1, -2147483648
137137 define double @f12(double %a, double %b, i64 %i1) {
138138 ; CHECK: f12:
139139 ; CHECK: cgr
140 ; CHECK-NEXT: j{{g?}}e
140 ; CHECK-NEXT: je
141141 ; CHECK: ldr %f0, %f2
142142 ; CHECK: br %r14
143143 %cond = icmp eq i64 %i1, -2147483649
55 define double @f1(double %a, double %b, i64 %i1) {
66 ; CHECK: f1:
77 ; CHECK: cghi %r2, 0
8 ; CHECK-NEXT: j{{g?}}lh
8 ; CHECK-NEXT: jlh
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %cond = icmp ne i64 %i1, 0
1717 define double @f2(double %a, double %b, i64 %i1) {
1818 ; CHECK: f2:
1919 ; CHECK: cghi %r2, 32767
20 ; CHECK-NEXT: j{{g?}}lh
20 ; CHECK-NEXT: jlh
2121 ; CHECK: ldr %f0, %f2
2222 ; CHECK: br %r14
2323 %cond = icmp ne i64 %i1, 32767
2929 define double @f3(double %a, double %b, i64 %i1) {
3030 ; CHECK: f3:
3131 ; CHECK: cgfi %r2, 32768
32 ; CHECK-NEXT: j{{g?}}lh
32 ; CHECK-NEXT: jlh
3333 ; CHECK: ldr %f0, %f2
3434 ; CHECK: br %r14
3535 %cond = icmp ne i64 %i1, 32768
4141 define double @f4(double %a, double %b, i64 %i1) {
4242 ; CHECK: f4:
4343 ; CHECK: cgfi %r2, 2147483647
44 ; CHECK-NEXT: j{{g?}}lh
44 ; CHECK-NEXT: jlh
4545 ; CHECK: ldr %f0, %f2
4646 ; CHECK: br %r14
4747 %cond = icmp ne i64 %i1, 2147483647
5353 define double @f5(double %a, double %b, i64 %i1) {
5454 ; CHECK: f5:
5555 ; CHECK: clgfi %r2, 2147483648
56 ; CHECK-NEXT: j{{g?}}lh
56 ; CHECK-NEXT: jlh
5757 ; CHECK: ldr %f0, %f2
5858 ; CHECK: br %r14
5959 %cond = icmp ne i64 %i1, 2147483648
6565 define double @f6(double %a, double %b, i64 %i1) {
6666 ; CHECK: f6:
6767 ; CHECK: clgfi %r2, 4294967295
68 ; CHECK-NEXT: j{{g?}}lh
68 ; CHECK-NEXT: jlh
6969 ; CHECK: ldr %f0, %f2
7070 ; CHECK: br %r14
7171 %cond = icmp ne i64 %i1, 4294967295
7777 define double @f7(double %a, double %b, i64 %i1) {
7878 ; CHECK: f7:
7979 ; CHECK: cgr %r2,
80 ; CHECK-NEXT: j{{g?}}lh
80 ; CHECK-NEXT: jlh
8181 ; CHECK: ldr %f0, %f2
8282 ; CHECK: br %r14
8383 %cond = icmp ne i64 %i1, 4294967296
8989 define double @f8(double %a, double %b, i64 %i1) {
9090 ; CHECK: f8:
9191 ; CHECK: cghi %r2, -1
92 ; CHECK-NEXT: j{{g?}}lh
92 ; CHECK-NEXT: jlh
9393 ; CHECK: ldr %f0, %f2
9494 ; CHECK: br %r14
9595 %cond = icmp ne i64 %i1, -1
101101 define double @f9(double %a, double %b, i64 %i1) {
102102 ; CHECK: f9:
103103 ; CHECK: cghi %r2, -32768
104 ; CHECK-NEXT: j{{g?}}lh
104 ; CHECK-NEXT: jlh
105105 ; CHECK: ldr %f0, %f2
106106 ; CHECK: br %r14
107107 %cond = icmp ne i64 %i1, -32768
113113 define double @f10(double %a, double %b, i64 %i1) {
114114 ; CHECK: f10:
115115 ; CHECK: cgfi %r2, -32769
116 ; CHECK-NEXT: j{{g?}}lh
116 ; CHECK-NEXT: jlh
117117 ; CHECK: ldr %f0, %f2
118118 ; CHECK: br %r14
119119 %cond = icmp ne i64 %i1, -32769
125125 define double @f11(double %a, double %b, i64 %i1) {
126126 ; CHECK: f11:
127127 ; CHECK: cgfi %r2, -2147483648
128 ; CHECK-NEXT: j{{g?}}lh
128 ; CHECK-NEXT: jlh
129129 ; CHECK: ldr %f0, %f2
130130 ; CHECK: br %r14
131131 %cond = icmp ne i64 %i1, -2147483648
137137 define double @f12(double %a, double %b, i64 %i1) {
138138 ; CHECK: f12:
139139 ; CHECK: cgr
140 ; CHECK-NEXT: j{{g?}}lh
140 ; CHECK-NEXT: jlh
141141 ; CHECK: ldr %f0, %f2
142142 ; CHECK: br %r14
143143 %cond = icmp ne i64 %i1, -2147483649
55 define double @f1(double %a, double %b, i8 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: cli 0(%r2), 1
8 ; CHECK-NEXT: j{{g?}}h
8 ; CHECK-NEXT: jh
99 ; CHECK: br %r14
1010 %val = load i8 *%ptr
1111 %cond = icmp ugt i8 %val, 1
1717 define double @f2(double %a, double %b, i8 *%ptr) {
1818 ; CHECK: f2:
1919 ; CHECK: cli 0(%r2), 254
20 ; CHECK-NEXT: j{{g?}}l
20 ; CHECK-NEXT: jl
2121 ; CHECK: br %r14
2222 %val = load i8 *%ptr
2323 %cond = icmp ult i8 %val, 254
2929 define double @f3(double %a, double %b, i8 *%ptr) {
3030 ; CHECK: f3:
3131 ; CHECK: cli 0(%r2), 127
32 ; CHECK-NEXT: j{{g?}}h
32 ; CHECK-NEXT: jh
3333 ; CHECK: br %r14
3434 %val = load i8 *%ptr
3535 %cond = icmp slt i8 %val, 0
4141 define double @f4(double %a, double %b, i8 *%ptr) {
4242 ; CHECK: f4:
4343 ; CHECK: cli 0(%r2), 127
44 ; CHECK-NEXT: j{{g?}}h
44 ; CHECK-NEXT: jh
4545 ; CHECK: br %r14
4646 %val = load i8 *%ptr
4747 %cond = icmp sle i8 %val, -1
5353 define double @f5(double %a, double %b, i8 *%ptr) {
5454 ; CHECK: f5:
5555 ; CHECK: cli 0(%r2), 128
56 ; CHECK-NEXT: j{{g?}}l
56 ; CHECK-NEXT: jl
5757 ; CHECK: br %r14
5858 %val = load i8 *%ptr
5959 %cond = icmp sge i8 %val, 0
6565 define double @f6(double %a, double %b, i8 *%ptr) {
6666 ; CHECK: f6:
6767 ; CHECK: cli 0(%r2), 128
68 ; CHECK-NEXT: j{{g?}}l
68 ; CHECK-NEXT: jl
6969 ; CHECK: br %r14
7070 %val = load i8 *%ptr
7171 %cond = icmp sgt i8 %val, -1
7777 define double @f7(double %a, double %b, i8 *%ptr) {
7878 ; CHECK: f7:
7979 ; CHECK: cli 0(%r2), 128
80 ; CHECK-NEXT: j{{g?}}e
80 ; CHECK-NEXT: je
8181 ; CHECK: br %r14
8282 %val = load i8 *%ptr
8383 %cond = icmp eq i8 %val, -128
8989 define double @f8(double %a, double %b, i8 *%ptr) {
9090 ; CHECK: f8:
9191 ; CHECK: cli 0(%r2), 0
92 ; CHECK-NEXT: j{{g?}}e
92 ; CHECK-NEXT: je
9393 ; CHECK: br %r14
9494 %val = load i8 *%ptr
9595 %cond = icmp eq i8 %val, 0
101101 define double @f9(double %a, double %b, i8 *%ptr) {
102102 ; CHECK: f9:
103103 ; CHECK: cli 0(%r2), 127
104 ; CHECK-NEXT: j{{g?}}e
104 ; CHECK-NEXT: je
105105 ; CHECK: br %r14
106106 %val = load i8 *%ptr
107107 %cond = icmp eq i8 %val, 127
113113 define double @f10(double %a, double %b, i8 *%ptr) {
114114 ; CHECK: f10:
115115 ; CHECK: cli 0(%r2), 255
116 ; CHECK-NEXT: j{{g?}}e
116 ; CHECK-NEXT: je
117117 ; CHECK: br %r14
118118 %val = load i8 *%ptr
119119 %cond = icmp eq i8 %val, 255
66 define double @f1(double %a, double %b, i8 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: cli 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}e
9 ; CHECK-NEXT: je
1010 ; CHECK: br %r14
1111 %val = load i8 *%ptr
1212 %ext = zext i8 %val to i32
1919 define double @f2(double %a, double %b, i8 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: cli 0(%r2), 255
22 ; CHECK-NEXT: j{{g?}}e
22 ; CHECK-NEXT: je
2323 ; CHECK: br %r14
2424 %val = load i8 *%ptr
2525 %ext = zext i8 %val to i32
5757 define double @f5(double %a, double %b, i8 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: cli 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}e
60 ; CHECK-NEXT: je
6161 ; CHECK: br %r14
6262 %val = load i8 *%ptr
6363 %ext = sext i8 %val to i32
7070 define double @f6(double %a, double %b, i8 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: cli 0(%r2), 127
73 ; CHECK-NEXT: j{{g?}}e
73 ; CHECK-NEXT: je
7474 ; CHECK: br %r14
7575 %val = load i8 *%ptr
7676 %ext = sext i8 %val to i32
9696 define double @f8(double %a, double %b, i8 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: cli 0(%r2), 255
99 ; CHECK-NEXT: j{{g?}}e
99 ; CHECK-NEXT: je
100100 ; CHECK: br %r14
101101 %val = load i8 *%ptr
102102 %ext = sext i8 %val to i32
109109 define double @f9(double %a, double %b, i8 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: cli 0(%r2), 128
112 ; CHECK-NEXT: j{{g?}}e
112 ; CHECK-NEXT: je
113113 ; CHECK: br %r14
114114 %val = load i8 *%ptr
115115 %ext = sext i8 %val to i32
66 define double @f1(double %a, double %b, i8 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: cli 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}lh
9 ; CHECK-NEXT: jlh
1010 ; CHECK: br %r14
1111 %val = load i8 *%ptr
1212 %ext = zext i8 %val to i32
1919 define double @f2(double %a, double %b, i8 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: cli 0(%r2), 255
22 ; CHECK-NEXT: j{{g?}}lh
22 ; CHECK-NEXT: jlh
2323 ; CHECK: br %r14
2424 %val = load i8 *%ptr
2525 %ext = zext i8 %val to i32
5757 define double @f5(double %a, double %b, i8 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: cli 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}lh
60 ; CHECK-NEXT: jlh
6161 ; CHECK: br %r14
6262 %val = load i8 *%ptr
6363 %ext = sext i8 %val to i32
7070 define double @f6(double %a, double %b, i8 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: cli 0(%r2), 127
73 ; CHECK-NEXT: j{{g?}}lh
73 ; CHECK-NEXT: jlh
7474 ; CHECK: br %r14
7575 %val = load i8 *%ptr
7676 %ext = sext i8 %val to i32
9696 define double @f8(double %a, double %b, i8 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: cli 0(%r2), 255
99 ; CHECK-NEXT: j{{g?}}lh
99 ; CHECK-NEXT: jlh
100100 ; CHECK: br %r14
101101 %val = load i8 *%ptr
102102 %ext = sext i8 %val to i32
109109 define double @f9(double %a, double %b, i8 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: cli 0(%r2), 128
112 ; CHECK-NEXT: j{{g?}}lh
112 ; CHECK-NEXT: jlh
113113 ; CHECK: br %r14
114114 %val = load i8 *%ptr
115115 %ext = sext i8 %val to i32
66 define double @f1(double %a, double %b, i8 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: cli 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}e
9 ; CHECK-NEXT: je
1010 ; CHECK: br %r14
1111 %val = load i8 *%ptr
1212 %ext = zext i8 %val to i64
1919 define double @f2(double %a, double %b, i8 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: cli 0(%r2), 255
22 ; CHECK-NEXT: j{{g?}}e
22 ; CHECK-NEXT: je
2323 ; CHECK: br %r14
2424 %val = load i8 *%ptr
2525 %ext = zext i8 %val to i64
5757 define double @f5(double %a, double %b, i8 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: cli 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}e
60 ; CHECK-NEXT: je
6161 ; CHECK: br %r14
6262 %val = load i8 *%ptr
6363 %ext = sext i8 %val to i64
7070 define double @f6(double %a, double %b, i8 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: cli 0(%r2), 127
73 ; CHECK-NEXT: j{{g?}}e
73 ; CHECK-NEXT: je
7474 ; CHECK: br %r14
7575 %val = load i8 *%ptr
7676 %ext = sext i8 %val to i64
9696 define double @f8(double %a, double %b, i8 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: cli 0(%r2), 255
99 ; CHECK-NEXT: j{{g?}}e
99 ; CHECK-NEXT: je
100100 ; CHECK: br %r14
101101 %val = load i8 *%ptr
102102 %ext = sext i8 %val to i64
109109 define double @f9(double %a, double %b, i8 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: cli 0(%r2), 128
112 ; CHECK-NEXT: j{{g?}}e
112 ; CHECK-NEXT: je
113113 ; CHECK: br %r14
114114 %val = load i8 *%ptr
115115 %ext = sext i8 %val to i64
66 define double @f1(double %a, double %b, i8 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: cli 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}lh
9 ; CHECK-NEXT: jlh
1010 ; CHECK: br %r14
1111 %val = load i8 *%ptr
1212 %ext = zext i8 %val to i64
1919 define double @f2(double %a, double %b, i8 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: cli 0(%r2), 255
22 ; CHECK-NEXT: j{{g?}}lh
22 ; CHECK-NEXT: jlh
2323 ; CHECK: br %r14
2424 %val = load i8 *%ptr
2525 %ext = zext i8 %val to i64
5757 define double @f5(double %a, double %b, i8 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: cli 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}lh
60 ; CHECK-NEXT: jlh
6161 ; CHECK: br %r14
6262 %val = load i8 *%ptr
6363 %ext = sext i8 %val to i64
7070 define double @f6(double %a, double %b, i8 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: cli 0(%r2), 127
73 ; CHECK-NEXT: j{{g?}}lh
73 ; CHECK-NEXT: jlh
7474 ; CHECK: br %r14
7575 %val = load i8 *%ptr
7676 %ext = sext i8 %val to i64
9696 define double @f8(double %a, double %b, i8 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: cli 0(%r2), 255
99 ; CHECK-NEXT: j{{g?}}lh
99 ; CHECK-NEXT: jlh
100100 ; CHECK: br %r14
101101 %val = load i8 *%ptr
102102 %ext = sext i8 %val to i64
109109 define double @f9(double %a, double %b, i8 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: cli 0(%r2), 128
112 ; CHECK-NEXT: j{{g?}}lh
112 ; CHECK-NEXT: jlh
113113 ; CHECK: br %r14
114114 %val = load i8 *%ptr
115115 %ext = sext i8 %val to i64
77 define double @f1(double %a, double %b, i8 *%ptr) {
88 ; CHECK: f1:
99 ; CHECK: cli 0(%r2), 1
10 ; CHECK-NEXT: j{{g?}}h
10 ; CHECK-NEXT: jh
1111 ; CHECK: br %r14
1212 %val = load i8 *%ptr
1313 %ext = zext i8 %val to i32
2121 define double @f2(double %a, double %b, i8 *%ptr) {
2222 ; CHECK: f2:
2323 ; CHECK: cli 0(%r2), 1
24 ; CHECK-NEXT: j{{g?}}h
24 ; CHECK-NEXT: jh
2525 ; CHECK: br %r14
2626 %val = load i8 *%ptr
2727 %ext = sext i8 %val to i32
3535 define double @f3(double %a, double %b, i8 *%ptr) {
3636 ; CHECK: f3:
3737 ; CHECK: cli 0(%r2), 254
38 ; CHECK-NEXT: j{{g?}}l
38 ; CHECK-NEXT: jl
3939 ; CHECK: br %r14
4040 %val = load i8 *%ptr
4141 %ext = zext i8 %val to i32
4949 define double @f4(double %a, double %b, i8 *%ptr) {
5050 ; CHECK: f4:
5151 ; CHECK: cli 0(%r2), 254
52 ; CHECK-NEXT: j{{g?}}l
52 ; CHECK-NEXT: jl
5353 ; CHECK: br %r14
5454 %val = load i8 *%ptr
5555 %ext = sext i8 %val to i32
104104 define double @f8(double %a, double %b, i8 *%ptr) {
105105 ; CHECK: f8:
106106 ; CHECK: cli 0(%r2), 1
107 ; CHECK-NEXT: j{{g?}}h
107 ; CHECK-NEXT: jh
108108 ; CHECK: br %r14
109109 %val = load i8 *%ptr
110110 %ext = zext i8 %val to i32
131131 define double @f10(double %a, double %b, i8 *%ptr) {
132132 ; CHECK: f10:
133133 ; CHECK: cli 0(%r2), 254
134 ; CHECK-NEXT: j{{g?}}l
134 ; CHECK-NEXT: jl
135135 ; CHECK: br %r14
136136 %val = load i8 *%ptr
137137 %ext = zext i8 %val to i32
170170 define double @f13(double %a, double %b, i8 *%ptr) {
171171 ; CHECK: f13:
172172 ; CHECK: cli 0(%r2), 128
173 ; CHECK-NEXT: j{{g?}}l
173 ; CHECK-NEXT: jl
174174 ; CHECK: br %r14
175175 %val = load i8 *%ptr
176176 %ext = sext i8 %val to i32
183183 define double @f14(double %a, double %b, i8 *%ptr) {
184184 ; CHECK: f14:
185185 ; CHECK: cli 0(%r2), 128
186 ; CHECK-NEXT: j{{g?}}l
186 ; CHECK-NEXT: jl
187187 ; CHECK: br %r14
188188 %val = load i8 *%ptr
189189 %ext = sext i8 %val to i32
196196 define double @f15(double %a, double %b, i8 *%ptr) {
197197 ; CHECK: f15:
198198 ; CHECK: cli 0(%r2), 127
199 ; CHECK-NEXT: j{{g?}}h
199 ; CHECK-NEXT: jh
200200 ; CHECK: br %r14
201201 %val = load i8 *%ptr
202202 %ext = sext i8 %val to i32
209209 define double @f16(double %a, double %b, i8 *%ptr) {
210210 ; CHECK: f16:
211211 ; CHECK: cli 0(%r2), 127
212 ; CHECK-NEXT: j{{g?}}h
212 ; CHECK-NEXT: jh
213213 ; CHECK: br %r14
214214 %val = load i8 *%ptr
215215 %ext = sext i8 %val to i32
77 define double @f1(double %a, double %b, i8 *%ptr) {
88 ; CHECK: f1:
99 ; CHECK: cli 0(%r2), 1
10 ; CHECK-NEXT: j{{g?}}h
10 ; CHECK-NEXT: jh
1111 ; CHECK: br %r14
1212 %val = load i8 *%ptr
1313 %ext = zext i8 %val to i64
2121 define double @f2(double %a, double %b, i8 *%ptr) {
2222 ; CHECK: f2:
2323 ; CHECK: cli 0(%r2), 1
24 ; CHECK-NEXT: j{{g?}}h
24 ; CHECK-NEXT: jh
2525 ; CHECK: br %r14
2626 %val = load i8 *%ptr
2727 %ext = sext i8 %val to i64
3535 define double @f3(double %a, double %b, i8 *%ptr) {
3636 ; CHECK: f3:
3737 ; CHECK: cli 0(%r2), 254
38 ; CHECK-NEXT: j{{g?}}l
38 ; CHECK-NEXT: jl
3939 ; CHECK: br %r14
4040 %val = load i8 *%ptr
4141 %ext = zext i8 %val to i64
4949 define double @f4(double %a, double %b, i8 *%ptr) {
5050 ; CHECK: f4:
5151 ; CHECK: cli 0(%r2), 254
52 ; CHECK-NEXT: j{{g?}}l
52 ; CHECK-NEXT: jl
5353 ; CHECK: br %r14
5454 %val = load i8 *%ptr
5555 %ext = sext i8 %val to i64
104104 define double @f8(double %a, double %b, i8 *%ptr) {
105105 ; CHECK: f8:
106106 ; CHECK: cli 0(%r2), 1
107 ; CHECK-NEXT: j{{g?}}h
107 ; CHECK-NEXT: jh
108108 ; CHECK: br %r14
109109 %val = load i8 *%ptr
110110 %ext = zext i8 %val to i64
131131 define double @f10(double %a, double %b, i8 *%ptr) {
132132 ; CHECK: f10:
133133 ; CHECK: cli 0(%r2), 254
134 ; CHECK-NEXT: j{{g?}}l
134 ; CHECK-NEXT: jl
135135 ; CHECK: br %r14
136136 %val = load i8 *%ptr
137137 %ext = zext i8 %val to i64
170170 define double @f13(double %a, double %b, i8 *%ptr) {
171171 ; CHECK: f13:
172172 ; CHECK: cli 0(%r2), 128
173 ; CHECK-NEXT: j{{g?}}l
173 ; CHECK-NEXT: jl
174174 ; CHECK: br %r14
175175 %val = load i8 *%ptr
176176 %ext = sext i8 %val to i64
183183 define double @f14(double %a, double %b, i8 *%ptr) {
184184 ; CHECK: f14:
185185 ; CHECK: cli 0(%r2), 128
186 ; CHECK-NEXT: j{{g?}}l
186 ; CHECK-NEXT: jl
187187 ; CHECK: br %r14
188188 %val = load i8 *%ptr
189189 %ext = sext i8 %val to i64
196196 define double @f15(double %a, double %b, i8 *%ptr) {
197197 ; CHECK: f15:
198198 ; CHECK: cli 0(%r2), 127
199 ; CHECK-NEXT: j{{g?}}h
199 ; CHECK-NEXT: jh
200200 ; CHECK: br %r14
201201 %val = load i8 *%ptr
202202 %ext = sext i8 %val to i64
209209 define double @f16(double %a, double %b, i8 *%ptr) {
210210 ; CHECK: f16:
211211 ; CHECK: cli 0(%r2), 127
212 ; CHECK-NEXT: j{{g?}}h
212 ; CHECK-NEXT: jh
213213 ; CHECK: br %r14
214214 %val = load i8 *%ptr
215215 %ext = sext i8 %val to i64
55 define double @f1(double %a, double %b, i16 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: chhsi 0(%r2), 0
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1818 define double @f2(double %a, double %b, i16 *%ptr) {
1919 ; CHECK: f2:
2020 ; CHECK: chhsi 0(%r2), 1
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
3131 define double @f3(double %a, double %b, i16 *%ptr) {
3232 ; CHECK: f3:
3333 ; CHECK: chhsi 0(%r2), 32766
34 ; CHECK-NEXT: j{{g?}}l
34 ; CHECK-NEXT: jl
3535 ; CHECK: ldr %f0, %f2
3636 ; CHECK: br %r14
3737 %val = load i16 *%ptr
4444 define double @f4(double %a, double %b, i16 *%ptr) {
4545 ; CHECK: f4:
4646 ; CHECK: chhsi 0(%r2), -1
47 ; CHECK-NEXT: j{{g?}}l
47 ; CHECK-NEXT: jl
4848 ; CHECK: ldr %f0, %f2
4949 ; CHECK: br %r14
5050 %val = load i16 *%ptr
5757 define double @f5(double %a, double %b, i16 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: chhsi 0(%r2), -32766
60 ; CHECK-NEXT: j{{g?}}l
60 ; CHECK-NEXT: jl
6161 ; CHECK: ldr %f0, %f2
6262 ; CHECK: br %r14
6363 %val = load i16 *%ptr
7070 define double @f6(double %a, double %b, i16 %i1, i16 *%base) {
7171 ; CHECK: f6:
7272 ; CHECK: chhsi 4094(%r3), 0
73 ; CHECK-NEXT: j{{g?}}l
73 ; CHECK-NEXT: jl
7474 ; CHECK: ldr %f0, %f2
7575 ; CHECK: br %r14
7676 %ptr = getelementptr i16 *%base, i64 2047
8585 ; CHECK: f7:
8686 ; CHECK: aghi %r2, 4096
8787 ; CHECK: chhsi 0(%r2), 0
88 ; CHECK-NEXT: j{{g?}}l
88 ; CHECK-NEXT: jl
8989 ; CHECK: ldr %f0, %f2
9090 ; CHECK: br %r14
9191 %ptr = getelementptr i16 *%base, i64 2048
100100 ; CHECK: f8:
101101 ; CHECK: aghi %r2, -2
102102 ; CHECK: chhsi 0(%r2), 0
103 ; CHECK-NEXT: j{{g?}}l
103 ; CHECK-NEXT: jl
104104 ; CHECK: ldr %f0, %f2
105105 ; CHECK: br %r14
106106 %ptr = getelementptr i16 *%base, i64 -1
115115 ; CHECK: f9:
116116 ; CHECK: agr {{%r2, %r3|%r3, %r2}}
117117 ; CHECK: chhsi 0({{%r[23]}}), 0
118 ; CHECK-NEXT: j{{g?}}l
118 ; CHECK-NEXT: jl
119119 ; CHECK: ldr %f0, %f2
120120 ; CHECK: br %r14
121121 %add = add i64 %base, %index
55 define double @f1(double %a, double %b, i16 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: clhhsi 0(%r2), 1
8 ; CHECK-NEXT: j{{g?}}h
8 ; CHECK-NEXT: jh
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1818 define double @f2(double %a, double %b, i16 *%ptr) {
1919 ; CHECK: f2:
2020 ; CHECK: clhhsi 0(%r2), 65534
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
3131 define double @f3(double %a, double %b, i16 %i1, i16 *%base) {
3232 ; CHECK: f3:
3333 ; CHECK: clhhsi 4094(%r3), 1
34 ; CHECK-NEXT: j{{g?}}h
34 ; CHECK-NEXT: jh
3535 ; CHECK: ldr %f0, %f2
3636 ; CHECK: br %r14
3737 %ptr = getelementptr i16 *%base, i64 2047
4646 ; CHECK: f4:
4747 ; CHECK: aghi %r2, 4096
4848 ; CHECK: clhhsi 0(%r2), 1
49 ; CHECK-NEXT: j{{g?}}h
49 ; CHECK-NEXT: jh
5050 ; CHECK: ldr %f0, %f2
5151 ; CHECK: br %r14
5252 %ptr = getelementptr i16 *%base, i64 2048
6161 ; CHECK: f5:
6262 ; CHECK: aghi %r2, -2
6363 ; CHECK: clhhsi 0(%r2), 1
64 ; CHECK-NEXT: j{{g?}}h
64 ; CHECK-NEXT: jh
6565 ; CHECK: ldr %f0, %f2
6666 ; CHECK: br %r14
6767 %ptr = getelementptr i16 *%base, i64 -1
7676 ; CHECK: f6:
7777 ; CHECK: agr {{%r2, %r3|%r3, %r2}}
7878 ; CHECK: clhhsi 0({{%r[23]}}), 1
79 ; CHECK-NEXT: j{{g?}}h
79 ; CHECK-NEXT: jh
8080 ; CHECK: ldr %f0, %f2
8181 ; CHECK: br %r14
8282 %add = add i64 %base, %index
55 define double @f1(double %a, double %b, i16 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: clhhsi 0(%r2), 0
8 ; CHECK-NEXT: j{{g?}}e
8 ; CHECK-NEXT: je
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1818 define double @f2(double %a, double %b, i16 *%ptr) {
1919 ; CHECK: f2:
2020 ; CHECK: clhhsi 0(%r2), 65535
21 ; CHECK-NEXT: j{{g?}}e
21 ; CHECK-NEXT: je
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
3131 define double @f3(double %a, double %b, i16 *%ptr) {
3232 ; CHECK: f3:
3333 ; CHECK: clhhsi 0(%r2), 32768
34 ; CHECK-NEXT: j{{g?}}e
34 ; CHECK-NEXT: je
3535 ; CHECK: ldr %f0, %f2
3636 ; CHECK: br %r14
3737 %val = load i16 *%ptr
4444 define double @f4(double %a, double %b, i16 *%ptr) {
4545 ; CHECK: f4:
4646 ; CHECK: clhhsi 0(%r2), 32767
47 ; CHECK-NEXT: j{{g?}}e
47 ; CHECK-NEXT: je
4848 ; CHECK: ldr %f0, %f2
4949 ; CHECK: br %r14
5050 %val = load i16 *%ptr
55 define double @f1(double %a, double %b, i16 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: clhhsi 0(%r2), 0
8 ; CHECK-NEXT: j{{g?}}lh
8 ; CHECK-NEXT: jlh
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1818 define double @f2(double %a, double %b, i16 *%ptr) {
1919 ; CHECK: f2:
2020 ; CHECK: clhhsi 0(%r2), 65535
21 ; CHECK-NEXT: j{{g?}}lh
21 ; CHECK-NEXT: jlh
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
3131 define double @f3(double %a, double %b, i16 *%ptr) {
3232 ; CHECK: f3:
3333 ; CHECK: clhhsi 0(%r2), 32768
34 ; CHECK-NEXT: j{{g?}}lh
34 ; CHECK-NEXT: jlh
3535 ; CHECK: ldr %f0, %f2
3636 ; CHECK: br %r14
3737 %val = load i16 *%ptr
4444 define double @f4(double %a, double %b, i16 *%ptr) {
4545 ; CHECK: f4:
4646 ; CHECK: clhhsi 0(%r2), 32767
47 ; CHECK-NEXT: j{{g?}}lh
47 ; CHECK-NEXT: jlh
4848 ; CHECK: ldr %f0, %f2
4949 ; CHECK: br %r14
5050 %val = load i16 *%ptr
66 define double @f1(double %a, double %b, i16 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: clhhsi 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}e
9 ; CHECK-NEXT: je
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1212 %ext = zext i16 %val to i32
1919 define double @f2(double %a, double %b, i16 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: clhhsi 0(%r2), 65535
22 ; CHECK-NEXT: j{{g?}}e
22 ; CHECK-NEXT: je
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
2525 %ext = zext i16 %val to i32
5757 define double @f5(double %a, double %b, i16 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: clhhsi 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}e
60 ; CHECK-NEXT: je
6161 ; CHECK: br %r14
6262 %val = load i16 *%ptr
6363 %ext = sext i16 %val to i32
7070 define double @f6(double %a, double %b, i16 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: clhhsi 0(%r2), 32767
73 ; CHECK-NEXT: j{{g?}}e
73 ; CHECK-NEXT: je
7474 ; CHECK: br %r14
7575 %val = load i16 *%ptr
7676 %ext = sext i16 %val to i32
9696 define double @f8(double %a, double %b, i16 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: clhhsi 0(%r2), 65535
99 ; CHECK-NEXT: j{{g?}}e
99 ; CHECK-NEXT: je
100100 ; CHECK: br %r14
101101 %val = load i16 *%ptr
102102 %ext = sext i16 %val to i32
109109 define double @f9(double %a, double %b, i16 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: clhhsi 0(%r2), 32768
112 ; CHECK-NEXT: j{{g?}}e
112 ; CHECK-NEXT: je
113113 ; CHECK: br %r14
114114 %val = load i16 *%ptr
115115 %ext = sext i16 %val to i32
66 define double @f1(double %a, double %b, i16 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: clhhsi 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}lh
9 ; CHECK-NEXT: jlh
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1212 %ext = zext i16 %val to i32
1919 define double @f2(double %a, double %b, i16 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: clhhsi 0(%r2), 65535
22 ; CHECK-NEXT: j{{g?}}lh
22 ; CHECK-NEXT: jlh
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
2525 %ext = zext i16 %val to i32
5757 define double @f5(double %a, double %b, i16 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: clhhsi 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}lh
60 ; CHECK-NEXT: jlh
6161 ; CHECK: br %r14
6262 %val = load i16 *%ptr
6363 %ext = sext i16 %val to i32
7070 define double @f6(double %a, double %b, i16 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: clhhsi 0(%r2), 32767
73 ; CHECK-NEXT: j{{g?}}lh
73 ; CHECK-NEXT: jlh
7474 ; CHECK: br %r14
7575 %val = load i16 *%ptr
7676 %ext = sext i16 %val to i32
9696 define double @f8(double %a, double %b, i16 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: clhhsi 0(%r2), 65535
99 ; CHECK-NEXT: j{{g?}}lh
99 ; CHECK-NEXT: jlh
100100 ; CHECK: br %r14
101101 %val = load i16 *%ptr
102102 %ext = sext i16 %val to i32
109109 define double @f9(double %a, double %b, i16 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: clhhsi 0(%r2), 32768
112 ; CHECK-NEXT: j{{g?}}lh
112 ; CHECK-NEXT: jlh
113113 ; CHECK: br %r14
114114 %val = load i16 *%ptr
115115 %ext = sext i16 %val to i32
66 define double @f1(double %a, double %b, i16 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: clhhsi 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}e
9 ; CHECK-NEXT: je
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1212 %ext = zext i16 %val to i64
1919 define double @f2(double %a, double %b, i16 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: clhhsi 0(%r2), 65535
22 ; CHECK-NEXT: j{{g?}}e
22 ; CHECK-NEXT: je
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
2525 %ext = zext i16 %val to i64
5757 define double @f5(double %a, double %b, i16 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: clhhsi 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}e
60 ; CHECK-NEXT: je
6161 ; CHECK: br %r14
6262 %val = load i16 *%ptr
6363 %ext = sext i16 %val to i64
7070 define double @f6(double %a, double %b, i16 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: clhhsi 0(%r2), 32767
73 ; CHECK-NEXT: j{{g?}}e
73 ; CHECK-NEXT: je
7474 ; CHECK: br %r14
7575 %val = load i16 *%ptr
7676 %ext = sext i16 %val to i64
9696 define double @f8(double %a, double %b, i16 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: clhhsi 0(%r2), 65535
99 ; CHECK-NEXT: j{{g?}}e
99 ; CHECK-NEXT: je
100100 ; CHECK: br %r14
101101 %val = load i16 *%ptr
102102 %ext = sext i16 %val to i64
109109 define double @f9(double %a, double %b, i16 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: clhhsi 0(%r2), 32768
112 ; CHECK-NEXT: j{{g?}}e
112 ; CHECK-NEXT: je
113113 ; CHECK: br %r14
114114 %val = load i16 *%ptr
115115 %ext = sext i16 %val to i64
66 define double @f1(double %a, double %b, i16 *%ptr) {
77 ; CHECK: f1:
88 ; CHECK: clhhsi 0(%r2), 0
9 ; CHECK-NEXT: j{{g?}}lh
9 ; CHECK-NEXT: jlh
1010 ; CHECK: br %r14
1111 %val = load i16 *%ptr
1212 %ext = zext i16 %val to i64
1919 define double @f2(double %a, double %b, i16 *%ptr) {
2020 ; CHECK: f2:
2121 ; CHECK: clhhsi 0(%r2), 65535
22 ; CHECK-NEXT: j{{g?}}lh
22 ; CHECK-NEXT: jlh
2323 ; CHECK: br %r14
2424 %val = load i16 *%ptr
2525 %ext = zext i16 %val to i64
5757 define double @f5(double %a, double %b, i16 *%ptr) {
5858 ; CHECK: f5:
5959 ; CHECK: clhhsi 0(%r2), 0
60 ; CHECK-NEXT: j{{g?}}lh
60 ; CHECK-NEXT: jlh
6161 ; CHECK: br %r14
6262 %val = load i16 *%ptr
6363 %ext = sext i16 %val to i64
7070 define double @f6(double %a, double %b, i16 *%ptr) {
7171 ; CHECK: f6:
7272 ; CHECK: clhhsi 0(%r2), 32767
73 ; CHECK-NEXT: j{{g?}}lh
73 ; CHECK-NEXT: jlh
7474 ; CHECK: br %r14
7575 %val = load i16 *%ptr
7676 %ext = sext i16 %val to i64
9696 define double @f8(double %a, double %b, i16 *%ptr) {
9797 ; CHECK: f8:
9898 ; CHECK: clhhsi 0(%r2), 65535
99 ; CHECK-NEXT: j{{g?}}lh
99 ; CHECK-NEXT: jlh
100100 ; CHECK: br %r14
101101 %val = load i16 *%ptr
102102 %ext = sext i16 %val to i64
109109 define double @f9(double %a, double %b, i16 *%ptr) {
110110 ; CHECK: f9:
111111 ; CHECK: clhhsi 0(%r2), 32768
112 ; CHECK-NEXT: j{{g?}}lh
112 ; CHECK-NEXT: jlh
113113 ; CHECK: br %r14
114114 %val = load i16 *%ptr
115115 %ext = sext i16 %val to i64
77 define double @f1(double %a, double %b, i16 *%ptr) {
88 ; CHECK: f1:
99 ; CHECK: clhhsi 0(%r2), 1
10 ; CHECK-NEXT: j{{g?}}h
10 ; CHECK-NEXT: jh
1111 ; CHECK: br %r14
1212 %val = load i16 *%ptr
1313 %ext = zext i16 %val to i32
2121 define double @f2(double %a, double %b, i16 *%ptr) {
2222 ; CHECK: f2:
2323 ; CHECK: clhhsi 0(%r2), 1
24 ; CHECK-NEXT: j{{g?}}h
24 ; CHECK-NEXT: jh
2525 ; CHECK: br %r14
2626 %val = load i16 *%ptr
2727 %ext = sext i16 %val to i32
3535 define double @f3(double %a, double %b, i16 *%ptr) {
3636 ; CHECK: f3:
3737 ; CHECK: clhhsi 0(%r2), 65534
38 ; CHECK-NEXT: j{{g?}}l
38 ; CHECK-NEXT: jl
3939 ; CHECK: br %r14
4040 %val = load i16 *%ptr
4141 %ext = zext i16 %val to i32
4949 define double @f4(double %a, double %b, i16 *%ptr) {
5050 ; CHECK: f4:
5151 ; CHECK: clhhsi 0(%r2), 65534
52 ; CHECK-NEXT: j{{g?}}l
52 ; CHECK-NEXT: jl
5353 ; CHECK: br %r14
5454 %val = load i16 *%ptr
5555 %ext = sext i16 %val to i32
105105 define double @f8(double %a, double %b, i16 *%ptr) {
106106 ; CHECK: f8:
107107 ; CHECK: clhhsi 0(%r2), 1
108 ; CHECK-NEXT: j{{g?}}h
108 ; CHECK-NEXT: jh
109109 ; CHECK: br %r14
110110 %val = load i16 *%ptr
111111 %ext = zext i16 %val to i32
119119 define double @f9(double %a, double %b, i16 *%ptr) {
120120 ; CHECK: f9:
121121 ; CHECK: chhsi 0(%r2), 1
122 ; CHECK-NEXT: j{{g?}}h
122 ; CHECK-NEXT: jh
123123 ; CHECK: br %r14
124124 %val = load i16 *%ptr
125125 %ext = sext i16 %val to i32
133133 define double @f10(double %a, double %b, i16 *%ptr) {
134134 ; CHECK: f10:
135135 ; CHECK: clhhsi 0(%r2), 65534
136 ; CHECK-NEXT: j{{g?}}l
136 ; CHECK-NEXT: jl
137137 ; CHECK: br %r14
138138 %val = load i16 *%ptr
139139 %ext = zext i16 %val to i32
147147 define double @f11(double %a, double %b, i16 *%ptr) {
148148 ; CHECK: f11:
149149 ; CHECK: chhsi 0(%r2), -2
150 ; CHECK-NEXT: j{{g?}}l
150 ; CHECK-NEXT: jl
151151 ; CHECK: br %r14
152152 %val = load i16 *%ptr
153153 %ext = sext i16 %val to i32
174174 define double @f13(double %a, double %b, i16 *%ptr) {
175175 ; CHECK: f13:
176176 ; CHECK: chhsi 0(%r2), 32766
177 ; CHECK-NEXT: j{{g?}}l
177 ; CHECK-NEXT: jl
178178 ; CHECK: br %r14
179179 %val = load i16 *%ptr
180180 %ext = sext i16 %val to i32
201201 define double @f15(double %a, double %b, i16 *%ptr) {
202202 ; CHECK: f15:
203203 ; CHECK: chhsi 0(%r2), -32767
204 ; CHECK-NEXT: j{{g?}}h
204 ; CHECK-NEXT: jh
205205 ; CHECK: br %r14
206206 %val = load i16 *%ptr
207207 %ext = sext i16 %val to i32
77 define double @f1(double %a, double %b, i16 *%ptr) {
88 ; CHECK: f1:
99 ; CHECK: clhhsi 0(%r2), 1
10 ; CHECK-NEXT: j{{g?}}h
10 ; CHECK-NEXT: jh
1111 ; CHECK: br %r14
1212 %val = load i16 *%ptr
1313 %ext = zext i16 %val to i64
2121 define double @f2(double %a, double %b, i16 *%ptr) {
2222 ; CHECK: f2:
2323 ; CHECK: clhhsi 0(%r2), 1
24 ; CHECK-NEXT: j{{g?}}h
24 ; CHECK-NEXT: jh
2525 ; CHECK: br %r14
2626 %val = load i16 *%ptr
2727 %ext = sext i16 %val to i64
3535 define double @f3(double %a, double %b, i16 *%ptr) {
3636 ; CHECK: f3:
3737 ; CHECK: clhhsi 0(%r2), 65534
38 ; CHECK-NEXT: j{{g?}}l
38 ; CHECK-NEXT: jl
3939 ; CHECK: br %r14
4040 %val = load i16 *%ptr
4141 %ext = zext i16 %val to i64
4949 define double @f4(double %a, double %b, i16 *%ptr) {
5050 ; CHECK: f4:
5151 ; CHECK: clhhsi 0(%r2), 65534
52 ; CHECK-NEXT: j{{g?}}l
52 ; CHECK-NEXT: jl
5353 ; CHECK: br %r14
5454 %val = load i16 *%ptr
5555 %ext = sext i16 %val to i64
105105 define double @f8(double %a, double %b, i16 *%ptr) {
106106 ; CHECK: f8:
107107 ; CHECK: clhhsi 0(%r2), 1
108 ; CHECK-NEXT: j{{g?}}h
108 ; CHECK-NEXT: jh
109109 ; CHECK: br %r14
110110 %val = load i16 *%ptr
111111 %ext = zext i16 %val to i64
119119 define double @f9(double %a, double %b, i16 *%ptr) {
120120 ; CHECK: f9:
121121 ; CHECK: chhsi 0(%r2), 1
122 ; CHECK-NEXT: j{{g?}}h
122 ; CHECK-NEXT: jh
123123 ; CHECK: br %r14
124124 %val = load i16 *%ptr
125125 %ext = sext i16 %val to i64
133133 define double @f10(double %a, double %b, i16 *%ptr) {
134134 ; CHECK: f10:
135135 ; CHECK: clhhsi 0(%r2), 65534
136 ; CHECK-NEXT: j{{g?}}l
136 ; CHECK-NEXT: jl
137137 ; CHECK: br %r14
138138 %val = load i16 *%ptr
139139 %ext = zext i16 %val to i64
147147 define double @f11(double %a, double %b, i16 *%ptr) {
148148 ; CHECK: f11:
149149 ; CHECK: chhsi 0(%r2), -2
150 ; CHECK-NEXT: j{{g?}}l
150 ; CHECK-NEXT: jl
151151 ; CHECK: br %r14
152152 %val = load i16 *%ptr
153153 %ext = sext i16 %val to i64
174174 define double @f13(double %a, double %b, i16 *%ptr) {
175175 ; CHECK: f13:
176176 ; CHECK: chhsi 0(%r2), 32766
177 ; CHECK-NEXT: j{{g?}}l
177 ; CHECK-NEXT: jl
178178 ; CHECK: br %r14
179179 %val = load i16 *%ptr
180180 %ext = sext i16 %val to i64
201201 define double @f15(double %a, double %b, i16 *%ptr) {
202202 ; CHECK: f15:
203203 ; CHECK: chhsi 0(%r2), -32767
204 ; CHECK-NEXT: j{{g?}}h
204 ; CHECK-NEXT: jh
205205 ; CHECK: br %r14
206206 %val = load i16 *%ptr
207207 %ext = sext i16 %val to i64
55 define double @f1(double %a, double %b, i32 *%ptr) {
66 ; CHECK: f1:
77 ; CHECK: chsi 0(%r2), 0
8 ; CHECK-NEXT: j{{g?}}l
8 ; CHECK-NEXT: jl
99 ; CHECK: ldr %f0, %f2
1010 ; CHECK: br %r14
1111 %val = load i32 *%ptr
1818 define double @f2(double %a, double %b, i32 *%ptr) {
1919 ; CHECK: f2:
2020 ; CHECK: chsi 0(%r2), 1
21 ; CHECK-NEXT: j{{g?}}l
21 ; CHECK-NEXT: jl
2222 ; CHECK: ldr %f0, %f2
2323 ; CHECK: br %r14
2424 %val = load i32 *%ptr
3131 define double @f3(double %a, double %b, i32 *%ptr) {
3232 ; CHECK: f3:
3333 ; CHECK: chsi 0(%r2), 32767
34 ; CHECK-NEXT: j{{g?}}l
34 ; CHECK-NEXT: jl
3535 ; CHECK: ldr %f0, %f2
3636 ; CHECK: br %r14
3737 %val = load i32 *%ptr
5555 define double @f5(double %a, double %b, i32 *%ptr) {
5656 ; CHECK: f5:
5757 ; CHECK: chsi 0(%r2), -1
58 ; CHECK-NEXT: j{{g?}}l
58 ; CHECK-NEXT: jl