@@ -7,111 +7,86 @@ define void @test(ptr %p, i40 %a) {
77; CHECK-NEXT: entry:
88; CHECK-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
99; CHECK: vector.ph:
10- ; CHECK-NEXT: [[BROADCAST_SPLATINSERT1:%.*]] = insertelement <16 x i40> poison, i40 [[A]], i64 0
11- ; CHECK-NEXT: [[BROADCAST_SPLAT2:%.*]] = shufflevector <16 x i40> [[BROADCAST_SPLATINSERT1]], <16 x i40> poison, <16 x i32> zeroinitializer
12- ; CHECK-NEXT: [[TMP1:%.*]] = shl <16 x i40> [[BROADCAST_SPLAT2]], splat (i40 24)
13- ; CHECK-NEXT: [[TMP2:%.*]] = ashr <16 x i40> [[TMP1]], splat (i40 28)
14- ; CHECK-NEXT: [[TMP3:%.*]] = trunc <16 x i40> [[TMP2]] to <16 x i32>
15- ; CHECK-NEXT: [[TMP4:%.*]] = trunc <16 x i32> [[TMP3]] to <16 x i1>
16- ; CHECK-NEXT: [[TMP5:%.*]] = icmp eq <16 x i1> [[TMP4]], zeroinitializer
17- ; CHECK-NEXT: [[TMP6:%.*]] = icmp ult <16 x i1> zeroinitializer, [[TMP5]]
18- ; CHECK-NEXT: [[TMP8:%.*]] = icmp sgt <16 x i1> [[TMP6]], zeroinitializer
1910; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
2011; CHECK: vector.body:
2112; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
2213; CHECK: pred.store.if:
23- ; CHECK-NEXT: [[TMP10:%.*]] = extractelement <16 x i1> [[TMP8]], i32 0
24- ; CHECK-NEXT: store i1 [[TMP10]], ptr [[P]], align 1
14+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
2515; CHECK-NEXT: br label [[PRED_STORE_CONTINUE]]
2616; CHECK: pred.store.continue:
2717; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF1:%.*]], label [[PRED_STORE_CONTINUE2:%.*]]
2818; CHECK: pred.store.if1:
29- ; CHECK-NEXT: [[TMP9:%.*]] = extractelement <16 x i1> [[TMP8]], i32 1
30- ; CHECK-NEXT: store i1 [[TMP9]], ptr [[P]], align 1
19+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
3120; CHECK-NEXT: br label [[PRED_STORE_CONTINUE2]]
3221; CHECK: pred.store.continue2:
3322; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF3:%.*]], label [[PRED_STORE_CONTINUE4:%.*]]
3423; CHECK: pred.store.if3:
35- ; CHECK-NEXT: [[TMP12:%.*]] = extractelement <16 x i1> [[TMP8]], i32 2
36- ; CHECK-NEXT: store i1 [[TMP12]], ptr [[P]], align 1
24+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
3725; CHECK-NEXT: br label [[PRED_STORE_CONTINUE4]]
3826; CHECK: pred.store.continue4:
3927; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF5:%.*]], label [[PRED_STORE_CONTINUE6:%.*]]
4028; CHECK: pred.store.if5:
41- ; CHECK-NEXT: [[TMP14:%.*]] = extractelement <16 x i1> [[TMP8]], i32 3
42- ; CHECK-NEXT: store i1 [[TMP14]], ptr [[P]], align 1
29+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
4330; CHECK-NEXT: br label [[PRED_STORE_CONTINUE6]]
4431; CHECK: pred.store.continue6:
4532; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF7:%.*]], label [[PRED_STORE_CONTINUE8:%.*]]
4633; CHECK: pred.store.if7:
47- ; CHECK-NEXT: [[TMP16:%.*]] = extractelement <16 x i1> [[TMP8]], i32 4
48- ; CHECK-NEXT: store i1 [[TMP16]], ptr [[P]], align 1
34+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
4935; CHECK-NEXT: br label [[PRED_STORE_CONTINUE8]]
5036; CHECK: pred.store.continue8:
5137; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF9:%.*]], label [[PRED_STORE_CONTINUE10:%.*]]
5238; CHECK: pred.store.if9:
53- ; CHECK-NEXT: [[TMP18:%.*]] = extractelement <16 x i1> [[TMP8]], i32 5
54- ; CHECK-NEXT: store i1 [[TMP18]], ptr [[P]], align 1
39+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
5540; CHECK-NEXT: br label [[PRED_STORE_CONTINUE10]]
5641; CHECK: pred.store.continue10:
5742; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF11:%.*]], label [[PRED_STORE_CONTINUE12:%.*]]
5843; CHECK: pred.store.if11:
59- ; CHECK-NEXT: [[TMP20:%.*]] = extractelement <16 x i1> [[TMP8]], i32 6
60- ; CHECK-NEXT: store i1 [[TMP20]], ptr [[P]], align 1
44+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
6145; CHECK-NEXT: br label [[PRED_STORE_CONTINUE12]]
6246; CHECK: pred.store.continue12:
6347; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF13:%.*]], label [[PRED_STORE_CONTINUE14:%.*]]
6448; CHECK: pred.store.if13:
65- ; CHECK-NEXT: [[TMP22:%.*]] = extractelement <16 x i1> [[TMP8]], i32 7
66- ; CHECK-NEXT: store i1 [[TMP22]], ptr [[P]], align 1
49+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
6750; CHECK-NEXT: br label [[PRED_STORE_CONTINUE14]]
6851; CHECK: pred.store.continue14:
6952; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF15:%.*]], label [[PRED_STORE_CONTINUE16:%.*]]
7053; CHECK: pred.store.if15:
71- ; CHECK-NEXT: [[TMP24:%.*]] = extractelement <16 x i1> [[TMP8]], i32 8
72- ; CHECK-NEXT: store i1 [[TMP24]], ptr [[P]], align 1
54+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
7355; CHECK-NEXT: br label [[PRED_STORE_CONTINUE16]]
7456; CHECK: pred.store.continue16:
7557; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF17:%.*]], label [[PRED_STORE_CONTINUE18:%.*]]
7658; CHECK: pred.store.if17:
77- ; CHECK-NEXT: [[TMP26:%.*]] = extractelement <16 x i1> [[TMP8]], i32 9
78- ; CHECK-NEXT: store i1 [[TMP26]], ptr [[P]], align 1
59+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
7960; CHECK-NEXT: br label [[PRED_STORE_CONTINUE18]]
8061; CHECK: pred.store.continue18:
8162; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF19:%.*]], label [[PRED_STORE_CONTINUE20:%.*]]
8263; CHECK: pred.store.if19:
83- ; CHECK-NEXT: [[TMP28:%.*]] = extractelement <16 x i1> [[TMP8]], i32 10
84- ; CHECK-NEXT: store i1 [[TMP28]], ptr [[P]], align 1
64+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
8565; CHECK-NEXT: br label [[PRED_STORE_CONTINUE20]]
8666; CHECK: pred.store.continue20:
8767; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF21:%.*]], label [[PRED_STORE_CONTINUE22:%.*]]
8868; CHECK: pred.store.if21:
89- ; CHECK-NEXT: [[TMP30:%.*]] = extractelement <16 x i1> [[TMP8]], i32 11
90- ; CHECK-NEXT: store i1 [[TMP30]], ptr [[P]], align 1
69+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
9170; CHECK-NEXT: br label [[PRED_STORE_CONTINUE22]]
9271; CHECK: pred.store.continue22:
9372; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF23:%.*]], label [[PRED_STORE_CONTINUE24:%.*]]
9473; CHECK: pred.store.if23:
95- ; CHECK-NEXT: [[TMP32:%.*]] = extractelement <16 x i1> [[TMP8]], i32 12
96- ; CHECK-NEXT: store i1 [[TMP32]], ptr [[P]], align 1
74+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
9775; CHECK-NEXT: br label [[PRED_STORE_CONTINUE24]]
9876; CHECK: pred.store.continue24:
9977; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF25:%.*]], label [[PRED_STORE_CONTINUE26:%.*]]
10078; CHECK: pred.store.if25:
101- ; CHECK-NEXT: [[TMP34:%.*]] = extractelement <16 x i1> [[TMP8]], i32 13
102- ; CHECK-NEXT: store i1 [[TMP34]], ptr [[P]], align 1
79+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
10380; CHECK-NEXT: br label [[PRED_STORE_CONTINUE26]]
10481; CHECK: pred.store.continue26:
10582; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF27:%.*]], label [[PRED_STORE_CONTINUE28:%.*]]
10683; CHECK: pred.store.if27:
107- ; CHECK-NEXT: [[TMP36:%.*]] = extractelement <16 x i1> [[TMP8]], i32 14
108- ; CHECK-NEXT: store i1 [[TMP36]], ptr [[P]], align 1
84+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
10985; CHECK-NEXT: br label [[PRED_STORE_CONTINUE28]]
11086; CHECK: pred.store.continue28:
11187; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF29:%.*]], label [[PRED_STORE_CONTINUE30:%.*]]
11288; CHECK: pred.store.if29:
113- ; CHECK-NEXT: [[TMP38:%.*]] = extractelement <16 x i1> [[TMP8]], i32 15
114- ; CHECK-NEXT: store i1 [[TMP38]], ptr [[P]], align 1
89+ ; CHECK-NEXT: store i1 false, ptr [[P]], align 1
11590; CHECK-NEXT: br label [[PRED_STORE_CONTINUE30]]
11691; CHECK: pred.store.continue30:
11792; CHECK-NEXT: br label [[MIDDLE_BLOCK:%.*]]
0 commit comments