@@ -321,6 +321,66 @@ different:
321
321
ret i1 %cmp3
322
322
}
323
323
324
+ define i1 @test6_phi1 (i1 %c , i32 %x , i32 %y ) {
325
+ ; CHECK-LABEL: @test6_phi1(
326
+ ; CHECK-NEXT: entry:
327
+ ; CHECK-NEXT: [[CMP_NOT:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
328
+ ; CHECK-NEXT: br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]
329
+ ; CHECK: bb1:
330
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], [[Y]]
331
+ ; CHECK-NEXT: br i1 [[CMP]], label [[BB2]], label [[BB3:%.*]]
332
+ ; CHECK: bb2:
333
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ false, [[BB1]] ], [ true, [[ENTRY:%.*]] ]
334
+ ; CHECK-NEXT: ret i1 [[PHI]]
335
+ ; CHECK: bb3:
336
+ ; CHECK-NEXT: ret i1 false
337
+ ;
338
+ entry:
339
+ %cmp.not = icmp ne i32 %x , %y
340
+ br i1 %c , label %bb1 , label %bb2
341
+
342
+ bb1:
343
+ %cmp = icmp eq i32 %x , %y
344
+ br i1 %cmp , label %bb2 , label %bb3
345
+
346
+ bb2:
347
+ %phi = phi i1 [ %cmp.not , %bb1 ], [ true , %entry ]
348
+ ret i1 %phi
349
+
350
+ bb3:
351
+ ret i1 false
352
+ }
353
+
354
+ define i1 @test6_phi2 (i1 %c , i32 %x , i32 %y ) {
355
+ ; CHECK-LABEL: @test6_phi2(
356
+ ; CHECK-NEXT: entry:
357
+ ; CHECK-NEXT: br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]
358
+ ; CHECK: bb1:
359
+ ; CHECK-NEXT: [[CMP_NOT:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
360
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], [[Y]]
361
+ ; CHECK-NEXT: br i1 [[CMP]], label [[BB2]], label [[BB3:%.*]]
362
+ ; CHECK: bb2:
363
+ ; CHECK-NEXT: [[PHI:%.*]] = phi i1 [ [[CMP_NOT]], [[BB1]] ], [ true, [[ENTRY:%.*]] ]
364
+ ; CHECK-NEXT: ret i1 [[PHI]]
365
+ ; CHECK: bb3:
366
+ ; CHECK-NEXT: ret i1 false
367
+ ;
368
+ entry:
369
+ br i1 %c , label %bb1 , label %bb2
370
+
371
+ bb1:
372
+ %cmp.not = icmp ne i32 %x , %y
373
+ %cmp = icmp eq i32 %x , %y
374
+ br i1 %cmp , label %bb2 , label %bb3
375
+
376
+ bb2:
377
+ %phi = phi i1 [ %cmp.not , %bb1 ], [ true , %entry ]
378
+ ret i1 %phi
379
+
380
+ bb3:
381
+ ret i1 false
382
+ }
383
+
324
384
define i1 @test7 (i32 %x , i32 %y ) {
325
385
; CHECK-LABEL: @test7(
326
386
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[X:%.*]], [[Y:%.*]]
0 commit comments