@@ -539,22 +539,11 @@ bb0:
539
539
// CHECK-NEXT: return %4 : $Builtin.Int64
540
540
}
541
541
542
- // Fold x < 0 into false, if x is known to be a result of an unsigned
543
- // operation with overflow checks enabled.
544
- // At the same time x >= 0 is always true under the same conditions.
545
- //
546
- // CHECK-LABEL: sil [ossa] @fold_unsigned_op_with_overflow_lt_zero :
542
+ // CHECK-LABEL: sil [ossa] @dont_fold_unsigned_op_with_overflow_lt_zero :
547
543
// CHECK: builtin "uadd_with_overflow_Int64"
548
- // CHECK: integer_literal $Builtin.Int1, 0
549
- // CHECK: integer_literal $Builtin.Int1, -1
550
- // CHECK: builtin "usub_with_overflow_Int64"
551
- // CHECK: integer_literal $Builtin.Int1, 0
552
- // CHECK: integer_literal $Builtin.Int1, -1
553
- // CHECK: builtin "umul_with_overflow_Int64"
554
- // CHECK: integer_literal $Builtin.Int1, 0
555
- // CHECK: integer_literal $Builtin.Int1, -1
556
- // CHECK-NEXT: return {{.*}}$Builtin.Int64
557
- sil [ossa] @fold_unsigned_op_with_overflow_lt_zero : $@convention(thin) (Builtin.Int64, Builtin.Int64) -> Builtin.Int64 {
544
+ // CHECK-NOT: integer_literal
545
+ // CHECK: } // end sil function 'dont_fold_unsigned_op_with_overflow_lt_zero'
546
+ sil [ossa] @dont_fold_unsigned_op_with_overflow_lt_zero : $@convention(thin) (Builtin.Int64, Builtin.Int64) -> Builtin.Int64 {
558
547
bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
559
548
%zero = integer_literal $Builtin.Int64, 0
560
549
%2 = integer_literal $Builtin.Int1, -1
@@ -585,18 +574,11 @@ bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
585
574
return %uadd_with_overflow_result : $Builtin.Int64
586
575
}
587
576
588
- // CHECK-LABEL: sil [ossa] @fold_unsigned_op_with_overflow_lt_zero_destructure :
577
+ // CHECK-LABEL: sil [ossa] @dont_fold_unsigned_op_with_overflow_lt_zero_destructure :
589
578
// CHECK: builtin "uadd_with_overflow_Int64"
590
- // CHECK: integer_literal $Builtin.Int1, 0
591
- // CHECK: integer_literal $Builtin.Int1, -1
592
- // CHECK: builtin "usub_with_overflow_Int64"
593
- // CHECK: integer_literal $Builtin.Int1, 0
594
- // CHECK: integer_literal $Builtin.Int1, -1
595
- // CHECK: builtin "umul_with_overflow_Int64"
596
- // CHECK: integer_literal $Builtin.Int1, 0
597
- // CHECK: integer_literal $Builtin.Int1, -1
598
- // CHECK-NEXT: return {{.*}}$Builtin.Int64
599
- sil [ossa] @fold_unsigned_op_with_overflow_lt_zero_destructure : $@convention(thin) (Builtin.Int64, Builtin.Int64) -> Builtin.Int64 {
579
+ // CHECK-NOT: integer_literal
580
+ // CHECK: } // end sil function 'dont_fold_unsigned_op_with_overflow_lt_zero_destructure'
581
+ sil [ossa] @dont_fold_unsigned_op_with_overflow_lt_zero_destructure : $@convention(thin) (Builtin.Int64, Builtin.Int64) -> Builtin.Int64 {
600
582
bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
601
583
%zero = integer_literal $Builtin.Int64, 0
602
584
%2 = integer_literal $Builtin.Int1, -1
0 commit comments