@@ -7,111 +7,86 @@ define void @test(ptr %p, i40 %a) {
7
7
; CHECK-NEXT: entry:
8
8
; CHECK-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
9
9
; 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
19
10
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
20
11
; CHECK: vector.body:
21
12
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
22
13
; 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
25
15
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE]]
26
16
; CHECK: pred.store.continue:
27
17
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF1:%.*]], label [[PRED_STORE_CONTINUE2:%.*]]
28
18
; 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
31
20
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE2]]
32
21
; CHECK: pred.store.continue2:
33
22
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF3:%.*]], label [[PRED_STORE_CONTINUE4:%.*]]
34
23
; 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
37
25
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE4]]
38
26
; CHECK: pred.store.continue4:
39
27
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF5:%.*]], label [[PRED_STORE_CONTINUE6:%.*]]
40
28
; 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
43
30
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE6]]
44
31
; CHECK: pred.store.continue6:
45
32
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF7:%.*]], label [[PRED_STORE_CONTINUE8:%.*]]
46
33
; 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
49
35
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE8]]
50
36
; CHECK: pred.store.continue8:
51
37
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF9:%.*]], label [[PRED_STORE_CONTINUE10:%.*]]
52
38
; 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
55
40
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE10]]
56
41
; CHECK: pred.store.continue10:
57
42
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF11:%.*]], label [[PRED_STORE_CONTINUE12:%.*]]
58
43
; 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
61
45
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE12]]
62
46
; CHECK: pred.store.continue12:
63
47
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF13:%.*]], label [[PRED_STORE_CONTINUE14:%.*]]
64
48
; 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
67
50
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE14]]
68
51
; CHECK: pred.store.continue14:
69
52
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF15:%.*]], label [[PRED_STORE_CONTINUE16:%.*]]
70
53
; 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
73
55
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE16]]
74
56
; CHECK: pred.store.continue16:
75
57
; CHECK-NEXT: br i1 true, label [[PRED_STORE_IF17:%.*]], label [[PRED_STORE_CONTINUE18:%.*]]
76
58
; 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
79
60
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE18]]
80
61
; CHECK: pred.store.continue18:
81
62
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF19:%.*]], label [[PRED_STORE_CONTINUE20:%.*]]
82
63
; 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
85
65
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE20]]
86
66
; CHECK: pred.store.continue20:
87
67
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF21:%.*]], label [[PRED_STORE_CONTINUE22:%.*]]
88
68
; 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
91
70
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE22]]
92
71
; CHECK: pred.store.continue22:
93
72
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF23:%.*]], label [[PRED_STORE_CONTINUE24:%.*]]
94
73
; 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
97
75
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE24]]
98
76
; CHECK: pred.store.continue24:
99
77
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF25:%.*]], label [[PRED_STORE_CONTINUE26:%.*]]
100
78
; 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
103
80
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE26]]
104
81
; CHECK: pred.store.continue26:
105
82
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF27:%.*]], label [[PRED_STORE_CONTINUE28:%.*]]
106
83
; 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
109
85
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE28]]
110
86
; CHECK: pred.store.continue28:
111
87
; CHECK-NEXT: br i1 false, label [[PRED_STORE_IF29:%.*]], label [[PRED_STORE_CONTINUE30:%.*]]
112
88
; 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
115
90
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE30]]
116
91
; CHECK: pred.store.continue30:
117
92
; CHECK-NEXT: br label [[MIDDLE_BLOCK:%.*]]
0 commit comments