Skip to content

Commit 3eae578

Browse files
Update small-size test
1 parent ed66d16 commit 3eae578

File tree

1 file changed

+23
-60
lines changed

1 file changed

+23
-60
lines changed

llvm/test/Transforms/LoopVectorize/X86/small-size.ll

Lines changed: 23 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -145,98 +145,61 @@ define void @example2(i32 %n, i32 %x) optsize {
145145
; CHECK: vector.body15:
146146
; CHECK-NEXT: [[INDEX16:%.*]] = phi i64 [ 0, [[VECTOR_PH9]] ], [ [[INDEX_NEXT29:%.*]], [[PRED_STORE_CONTINUE28:%.*]] ]
147147
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 [[I_0_LCSSA]], [[INDEX16]]
148-
; CHECK-NEXT: [[TMP27:%.*]] = add i64 [[OFFSET_IDX]], 1
149-
; CHECK-NEXT: [[TMP35:%.*]] = add i64 [[OFFSET_IDX]], 2
150-
; CHECK-NEXT: [[TMP43:%.*]] = add i64 [[OFFSET_IDX]], 3
151148
; CHECK-NEXT: [[BROADCAST_SPLATINSERT17:%.*]] = insertelement <4 x i64> poison, i64 [[INDEX16]], i64 0
152149
; CHECK-NEXT: [[BROADCAST_SPLAT18:%.*]] = shufflevector <4 x i64> [[BROADCAST_SPLATINSERT17]], <4 x i64> poison, <4 x i32> zeroinitializer
153150
; CHECK-NEXT: [[VEC_IV:%.*]] = or disjoint <4 x i64> [[BROADCAST_SPLAT18]], <i64 0, i64 1, i64 2, i64 3>
154151
; CHECK-NEXT: [[TMP18:%.*]] = icmp ule <4 x i64> [[VEC_IV]], [[BROADCAST_SPLAT20]]
155152
; CHECK-NEXT: [[TMP19:%.*]] = extractelement <4 x i1> [[TMP18]], i64 0
156153
; CHECK-NEXT: br i1 [[TMP19]], label [[PRED_STORE_IF21:%.*]], label [[PRED_STORE_CONTINUE22:%.*]]
157-
; CHECK: pred.load.if:
154+
; CHECK: pred.store.if21:
158155
; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @b, i64 0, i64 [[OFFSET_IDX]]
159156
; CHECK-NEXT: [[TMP21:%.*]] = load i32, ptr [[TMP20]], align 4
160-
; CHECK-NEXT: [[TMP25:%.*]] = insertelement <4 x i32> poison, i32 [[TMP21]], i64 0
161157
; CHECK-NEXT: [[TMP22:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @c, i64 0, i64 [[OFFSET_IDX]]
162158
; CHECK-NEXT: [[TMP23:%.*]] = load i32, ptr [[TMP22]], align 4
163-
; CHECK-NEXT: [[TMP32:%.*]] = insertelement <4 x i32> poison, i32 [[TMP23]], i64 0
159+
; CHECK-NEXT: [[TMP24:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[OFFSET_IDX]]
160+
; CHECK-NEXT: [[TMP25:%.*]] = and i32 [[TMP23]], [[TMP21]]
161+
; CHECK-NEXT: store i32 [[TMP25]], ptr [[TMP24]], align 4
164162
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE22]]
165-
; CHECK: pred.load.continue:
166-
; CHECK-NEXT: [[TMP33:%.*]] = phi <4 x i32> [ poison, [[VECTOR_BODY15]] ], [ [[TMP25]], [[PRED_STORE_IF21]] ]
167-
; CHECK-NEXT: [[TMP40:%.*]] = phi <4 x i32> [ poison, [[VECTOR_BODY15]] ], [ [[TMP32]], [[PRED_STORE_IF21]] ]
163+
; CHECK: pred.store.continue22:
168164
; CHECK-NEXT: [[TMP26:%.*]] = extractelement <4 x i1> [[TMP18]], i64 1
169165
; CHECK-NEXT: br i1 [[TMP26]], label [[PRED_STORE_IF23:%.*]], label [[PRED_STORE_CONTINUE24:%.*]]
170-
; CHECK: pred.load.if21:
166+
; CHECK: pred.store.if23:
167+
; CHECK-NEXT: [[TMP27:%.*]] = add i64 [[OFFSET_IDX]], 1
171168
; CHECK-NEXT: [[TMP28:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @b, i64 0, i64 [[TMP27]]
172169
; CHECK-NEXT: [[TMP29:%.*]] = load i32, ptr [[TMP28]], align 4
173-
; CHECK-NEXT: [[TMP41:%.*]] = insertelement <4 x i32> [[TMP33]], i32 [[TMP29]], i64 1
174170
; CHECK-NEXT: [[TMP30:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @c, i64 0, i64 [[TMP27]]
175171
; CHECK-NEXT: [[TMP31:%.*]] = load i32, ptr [[TMP30]], align 4
176-
; CHECK-NEXT: [[TMP51:%.*]] = insertelement <4 x i32> [[TMP40]], i32 [[TMP31]], i64 1
172+
; CHECK-NEXT: [[TMP32:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP27]]
173+
; CHECK-NEXT: [[TMP33:%.*]] = and i32 [[TMP31]], [[TMP29]]
174+
; CHECK-NEXT: store i32 [[TMP33]], ptr [[TMP32]], align 4
177175
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE24]]
178-
; CHECK: pred.load.continue22:
179-
; CHECK-NEXT: [[TMP53:%.*]] = phi <4 x i32> [ [[TMP33]], [[PRED_STORE_CONTINUE22]] ], [ [[TMP41]], [[PRED_STORE_IF23]] ]
180-
; CHECK-NEXT: [[TMP54:%.*]] = phi <4 x i32> [ [[TMP40]], [[PRED_STORE_CONTINUE22]] ], [ [[TMP51]], [[PRED_STORE_IF23]] ]
176+
; CHECK: pred.store.continue24:
181177
; CHECK-NEXT: [[TMP34:%.*]] = extractelement <4 x i1> [[TMP18]], i64 2
182178
; CHECK-NEXT: br i1 [[TMP34]], label [[PRED_STORE_IF25:%.*]], label [[PRED_STORE_CONTINUE26:%.*]]
183-
; CHECK: pred.load.if23:
179+
; CHECK: pred.store.if25:
180+
; CHECK-NEXT: [[TMP35:%.*]] = add i64 [[OFFSET_IDX]], 2
184181
; CHECK-NEXT: [[TMP36:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @b, i64 0, i64 [[TMP35]]
185182
; CHECK-NEXT: [[TMP37:%.*]] = load i32, ptr [[TMP36]], align 4
186-
; CHECK-NEXT: [[TMP60:%.*]] = insertelement <4 x i32> [[TMP53]], i32 [[TMP37]], i64 2
187183
; CHECK-NEXT: [[TMP38:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @c, i64 0, i64 [[TMP35]]
188184
; CHECK-NEXT: [[TMP39:%.*]] = load i32, ptr [[TMP38]], align 4
189-
; CHECK-NEXT: [[TMP61:%.*]] = insertelement <4 x i32> [[TMP54]], i32 [[TMP39]], i64 2
185+
; CHECK-NEXT: [[TMP40:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP35]]
186+
; CHECK-NEXT: [[TMP41:%.*]] = and i32 [[TMP39]], [[TMP37]]
187+
; CHECK-NEXT: store i32 [[TMP41]], ptr [[TMP40]], align 4
190188
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE26]]
191-
; CHECK: pred.load.continue24:
192-
; CHECK-NEXT: [[TMP71:%.*]] = phi <4 x i32> [ [[TMP53]], [[PRED_STORE_CONTINUE24]] ], [ [[TMP60]], [[PRED_STORE_IF25]] ]
193-
; CHECK-NEXT: [[TMP72:%.*]] = phi <4 x i32> [ [[TMP54]], [[PRED_STORE_CONTINUE24]] ], [ [[TMP61]], [[PRED_STORE_IF25]] ]
189+
; CHECK: pred.store.continue26:
194190
; CHECK-NEXT: [[TMP42:%.*]] = extractelement <4 x i1> [[TMP18]], i64 3
195-
; CHECK-NEXT: br i1 [[TMP42]], label [[PRED_LOAD_IF25:%.*]], label [[PRED_LOAD_CONTINUE26:%.*]]
196-
; CHECK: pred.load.if25:
191+
; CHECK-NEXT: br i1 [[TMP42]], label [[PRED_STORE_IF27:%.*]], label [[PRED_STORE_CONTINUE28]]
192+
; CHECK: pred.store.if27:
193+
; CHECK-NEXT: [[TMP43:%.*]] = add i64 [[OFFSET_IDX]], 3
197194
; CHECK-NEXT: [[TMP44:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @b, i64 0, i64 [[TMP43]]
198195
; CHECK-NEXT: [[TMP45:%.*]] = load i32, ptr [[TMP44]], align 4
199-
; CHECK-NEXT: [[TMP52:%.*]] = insertelement <4 x i32> [[TMP71]], i32 [[TMP45]], i64 3
200196
; CHECK-NEXT: [[TMP46:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @c, i64 0, i64 [[TMP43]]
201197
; CHECK-NEXT: [[TMP47:%.*]] = load i32, ptr [[TMP46]], align 4
202-
; CHECK-NEXT: [[TMP55:%.*]] = insertelement <4 x i32> [[TMP72]], i32 [[TMP47]], i64 3
203-
; CHECK-NEXT: br label [[PRED_LOAD_CONTINUE26]]
204-
; CHECK: pred.load.continue26:
205-
; CHECK-NEXT: [[TMP56:%.*]] = phi <4 x i32> [ [[TMP71]], [[PRED_STORE_CONTINUE26]] ], [ [[TMP52]], [[PRED_LOAD_IF25]] ]
206-
; CHECK-NEXT: [[TMP57:%.*]] = phi <4 x i32> [ [[TMP72]], [[PRED_STORE_CONTINUE26]] ], [ [[TMP55]], [[PRED_LOAD_IF25]] ]
207-
; CHECK-NEXT: [[TMP58:%.*]] = and <4 x i32> [[TMP57]], [[TMP56]]
208-
; CHECK-NEXT: [[TMP59:%.*]] = extractelement <4 x i1> [[TMP18]], i64 0
209-
; CHECK-NEXT: br i1 [[TMP59]], label [[PRED_STORE_IF27:%.*]], label [[PRED_STORE_CONTINUE29:%.*]]
210-
; CHECK: pred.store.if27:
211-
; CHECK-NEXT: [[TMP48:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[OFFSET_IDX]]
212-
; CHECK-NEXT: [[TMP49:%.*]] = extractelement <4 x i32> [[TMP58]], i64 0
198+
; CHECK-NEXT: [[TMP48:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP43]]
199+
; CHECK-NEXT: [[TMP49:%.*]] = and i32 [[TMP47]], [[TMP45]]
213200
; CHECK-NEXT: store i32 [[TMP49]], ptr [[TMP48]], align 4
214-
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE29]]
215-
; CHECK: pred.store.continue28:
216-
; CHECK-NEXT: [[TMP62:%.*]] = extractelement <4 x i1> [[TMP18]], i64 1
217-
; CHECK-NEXT: br i1 [[TMP62]], label [[PRED_STORE_IF29:%.*]], label [[PRED_STORE_CONTINUE30:%.*]]
218-
; CHECK: pred.store.if29:
219-
; CHECK-NEXT: [[TMP63:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP27]]
220-
; CHECK-NEXT: [[TMP64:%.*]] = extractelement <4 x i32> [[TMP58]], i64 1
221-
; CHECK-NEXT: store i32 [[TMP64]], ptr [[TMP63]], align 4
222-
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE30]]
223-
; CHECK: pred.store.continue30:
224-
; CHECK-NEXT: [[TMP65:%.*]] = extractelement <4 x i1> [[TMP18]], i64 2
225-
; CHECK-NEXT: br i1 [[TMP65]], label [[PRED_STORE_IF31:%.*]], label [[PRED_STORE_CONTINUE32:%.*]]
226-
; CHECK: pred.store.if31:
227-
; CHECK-NEXT: [[TMP66:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP35]]
228-
; CHECK-NEXT: [[TMP67:%.*]] = extractelement <4 x i32> [[TMP58]], i64 2
229-
; CHECK-NEXT: store i32 [[TMP67]], ptr [[TMP66]], align 4
230-
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE32]]
231-
; CHECK: pred.store.continue32:
232-
; CHECK-NEXT: [[TMP68:%.*]] = extractelement <4 x i1> [[TMP18]], i64 3
233-
; CHECK-NEXT: br i1 [[TMP68]], label [[PRED_STORE_IF33:%.*]], label [[PRED_STORE_CONTINUE28]]
234-
; CHECK: pred.store.if33:
235-
; CHECK-NEXT: [[TMP69:%.*]] = getelementptr inbounds nuw [2048 x i32], ptr @a, i64 0, i64 [[TMP43]]
236-
; CHECK-NEXT: [[TMP70:%.*]] = extractelement <4 x i32> [[TMP58]], i64 3
237-
; CHECK-NEXT: store i32 [[TMP70]], ptr [[TMP69]], align 4
238201
; CHECK-NEXT: br label [[PRED_STORE_CONTINUE28]]
239-
; CHECK: pred.store.continue34:
202+
; CHECK: pred.store.continue28:
240203
; CHECK-NEXT: [[INDEX_NEXT29]] = add nuw i64 [[INDEX16]], 4
241204
; CHECK-NEXT: [[TMP50:%.*]] = icmp eq i64 [[INDEX_NEXT29]], [[N_VEC12]]
242205
; CHECK-NEXT: br i1 [[TMP50]], label [[MIDDLE_BLOCK7:%.*]], label [[VECTOR_BODY15]], !llvm.loop [[LOOP5:![0-9]+]]

0 commit comments

Comments
 (0)