44define i1 @ceil_shift4 (i32 %arg0 ) {
55; CHECK-LABEL: define i1 @ceil_shift4(
66; CHECK-SAME: i32 [[ARG0:%.*]]) {
7- ; CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[ARG0]], 4
8- ; CHECK-NEXT: [[TMP2:%.*]] = and i32 [[ARG0]], 15
9- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP2]], 0
10- ; CHECK-NEXT: [[TMP4:%.*]] = zext i1 [[TMP3]] to i32
11- ; CHECK-NEXT: [[TMP5:%.*]] = or i32 [[TMP6]], [[TMP4]]
12- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP5]], 0
7+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[ARG0]], 0
138; CHECK-NEXT: ret i1 [[TMP1]]
149;
1510 %1 = lshr i32 %arg0 , 4
@@ -24,12 +19,7 @@ define i1 @ceil_shift4(i32 %arg0) {
2419define i1 @ceil_shift6 (i32 %arg0 ) {
2520; CHECK-LABEL: define i1 @ceil_shift6(
2621; CHECK-SAME: i32 [[ARG0:%.*]]) {
27- ; CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[ARG0]], 6
28- ; CHECK-NEXT: [[TMP2:%.*]] = and i32 [[ARG0]], 63
29- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP2]], 0
30- ; CHECK-NEXT: [[TMP4:%.*]] = zext i1 [[TMP3]] to i32
31- ; CHECK-NEXT: [[TMP5:%.*]] = or i32 [[TMP6]], [[TMP4]]
32- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP5]], 0
22+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[ARG0]], 0
3323; CHECK-NEXT: ret i1 [[TMP1]]
3424;
3525 %1 = lshr i32 %arg0 , 6
@@ -44,12 +34,7 @@ define i1 @ceil_shift6(i32 %arg0) {
4434define i1 @ceil_shift11 (i32 %arg0 ) {
4535; CHECK-LABEL: define i1 @ceil_shift11(
4636; CHECK-SAME: i32 [[ARG0:%.*]]) {
47- ; CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[ARG0]], 11
48- ; CHECK-NEXT: [[TMP2:%.*]] = and i32 [[ARG0]], 2047
49- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP2]], 0
50- ; CHECK-NEXT: [[TMP4:%.*]] = zext i1 [[TMP3]] to i32
51- ; CHECK-NEXT: [[TMP5:%.*]] = or i32 [[TMP6]], [[TMP4]]
52- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP5]], 0
37+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[ARG0]], 0
5338; CHECK-NEXT: ret i1 [[TMP1]]
5439;
5540 %1 = lshr i32 %arg0 , 11
@@ -83,11 +68,7 @@ define i1 @ceil_shift4_used_1(i32 %arg0) {
8368; CHECK-SAME: i32 [[ARG0:%.*]]) {
8469; CHECK-NEXT: [[TMP1:%.*]] = lshr i32 [[ARG0]], 4
8570; CHECK-NEXT: call void @use(i32 [[TMP1]])
86- ; CHECK-NEXT: [[TMP2:%.*]] = and i32 [[ARG0]], 15
87- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP2]], 0
88- ; CHECK-NEXT: [[TMP4:%.*]] = zext i1 [[TMP3]] to i32
89- ; CHECK-NEXT: [[TMP5:%.*]] = or i32 [[TMP1]], [[TMP4]]
90- ; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i32 [[TMP5]], 0
71+ ; CHECK-NEXT: [[TMP6:%.*]] = icmp eq i32 [[ARG0]], 0
9172; CHECK-NEXT: ret i1 [[TMP6]]
9273;
9374 %1 = lshr i32 %arg0 , 4
@@ -125,12 +106,7 @@ define i1 @ceil_shift4_used_5(i32 %arg0) {
125106define <4 x i1 > @ceil_shift4_v4i32 (<4 x i32 > %arg0 ) {
126107; CHECK-LABEL: define <4 x i1> @ceil_shift4_v4i32(
127108; CHECK-SAME: <4 x i32> [[ARG0:%.*]]) {
128- ; CHECK-NEXT: [[TMP6:%.*]] = lshr <4 x i32> [[ARG0]], splat (i32 16)
129- ; CHECK-NEXT: [[TMP2:%.*]] = and <4 x i32> [[ARG0]], splat (i32 65535)
130- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <4 x i32> [[TMP2]], zeroinitializer
131- ; CHECK-NEXT: [[TMP4:%.*]] = zext <4 x i1> [[TMP3]] to <4 x i32>
132- ; CHECK-NEXT: [[TMP5:%.*]] = or <4 x i32> [[TMP6]], [[TMP4]]
133- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <4 x i32> [[TMP5]], zeroinitializer
109+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <4 x i32> [[ARG0]], zeroinitializer
134110; CHECK-NEXT: ret <4 x i1> [[TMP1]]
135111;
136112 %1 = lshr <4 x i32 > %arg0 , splat (i32 16 )
@@ -145,12 +121,7 @@ define <4 x i1> @ceil_shift4_v4i32(<4 x i32> %arg0) {
145121define <8 x i1 > @ceil_shift4_v8i16 (<8 x i16 > %arg0 ) {
146122; CHECK-LABEL: define <8 x i1> @ceil_shift4_v8i16(
147123; CHECK-SAME: <8 x i16> [[ARG0:%.*]]) {
148- ; CHECK-NEXT: [[TMP6:%.*]] = lshr <8 x i16> [[ARG0]], splat (i16 4)
149- ; CHECK-NEXT: [[TMP2:%.*]] = and <8 x i16> [[ARG0]], splat (i16 15)
150- ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne <8 x i16> [[TMP2]], zeroinitializer
151- ; CHECK-NEXT: [[TMP4:%.*]] = zext <8 x i1> [[TMP3]] to <8 x i16>
152- ; CHECK-NEXT: [[TMP5:%.*]] = or <8 x i16> [[TMP6]], [[TMP4]]
153- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <8 x i16> [[TMP5]], zeroinitializer
124+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <8 x i16> [[ARG0]], zeroinitializer
154125; CHECK-NEXT: ret <8 x i1> [[TMP1]]
155126;
156127 %1 = lshr <8 x i16 > %arg0 , splat (i16 4 )
0 commit comments