@@ -539,22 +539,11 @@ bb0:
539539// CHECK-NEXT: return %4 : $Builtin.Int64
540540}
541541
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 :
547543// 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 {
558547bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
559548 %zero = integer_literal $Builtin.Int64, 0
560549 %2 = integer_literal $Builtin.Int1, -1
@@ -585,18 +574,11 @@ bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
585574 return %uadd_with_overflow_result : $Builtin.Int64
586575}
587576
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 :
589578// 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 {
600582bb0(%0 : $Builtin.Int64, %1 : $Builtin.Int64):
601583 %zero = integer_literal $Builtin.Int64, 0
602584 %2 = integer_literal $Builtin.Int1, -1
0 commit comments