@@ -428,7 +428,8 @@ define i64 @smear_set_bit_different_dest_type_wider_dst(i32 %x) {
428428
429429define i1 @sext_square_bit30 (i8 %x ) {
430430; CHECK-LABEL: @sext_square_bit30(
431- ; CHECK: ret i1 false
431+ ; CHECK-NEXT: ret i1 false
432+ ;
432433 %sx = sext i8 %x to i32
433434 %mul = mul nsw i32 %sx , %sx
434435 %and = and i32 %mul , 1073741824 ; 1 << 30
@@ -438,7 +439,8 @@ define i1 @sext_square_bit30(i8 %x) {
438439
439440define i1 @sext_square_bit15 (i8 %x ) {
440441; CHECK-LABEL: @sext_square_bit15(
441- ; CHECK: ret i1 false
442+ ; CHECK-NEXT: ret i1 false
443+ ;
442444 %sx = sext i8 %x to i32
443445 %mul = mul nsw i32 %sx , %sx
444446 %and = and i32 %mul , 32768 ; 1 << 15
@@ -448,7 +450,11 @@ define i1 @sext_square_bit15(i8 %x) {
448450
449451define i1 @sext_square_bit14 (i8 %x ) {
450452; CHECK-LABEL: @sext_square_bit14(
451- ; CHECK-NOT: ret i1 false
453+ ; CHECK-NEXT: [[SX:%.*]] = sext i8 [[X:%.*]] to i32
454+ ; CHECK-NEXT: [[MUL:%.*]] = mul nsw i32 [[SX]], [[SX]]
455+ ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ugt i32 [[MUL]], 16383
456+ ; CHECK-NEXT: ret i1 [[CMP]]
457+ ;
452458 %sx = sext i8 %x to i32
453459 %mul = mul nsw i32 %sx , %sx
454460 %and = and i32 %mul , 16384 ; 1 << 14
0 commit comments