@@ -641,18 +641,18 @@ define { i64, i1 } @addcarry_fake_carry(i64 %a, i64 %b, i1 %carryin) nounwind {
641
641
; CHECK-NEXT: adcq %rsi, %rax
642
642
; CHECK-NEXT: setb %dl
643
643
; CHECK-NEXT: retq
644
- %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
645
- %partial = extractvalue { i64 , i1 } %t1 , 0
646
- %k1 = extractvalue { i64 , i1 } %t1 , 1
644
+ %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
645
+ %partial = extractvalue { i64 , i1 } %t1 , 0
646
+ %k1 = extractvalue { i64 , i1 } %t1 , 1
647
647
648
- %zcarryin = zext i1 %carryin to i64
649
- %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %zcarryin )
650
- %k2 = extractvalue { i64 , i1 } %sum , 1
648
+ %zcarryin = zext i1 %carryin to i64
649
+ %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %zcarryin )
650
+ %k2 = extractvalue { i64 , i1 } %sum , 1
651
651
652
- %carryout = or i1 %k1 , %k2
652
+ %carryout = or i1 %k1 , %k2
653
653
654
- %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
655
- ret { i64 , i1 } %ret
654
+ %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
655
+ ret { i64 , i1 } %ret
656
656
}
657
657
658
658
; negative test: %carryin does not look like carry
@@ -666,17 +666,17 @@ define { i64, i1 } @addcarry_carry_not_zext(i64 %a, i64 %b, i64 %carryin) nounwi
666
666
; CHECK-NEXT: setb %dl
667
667
; CHECK-NEXT: orb %cl, %dl
668
668
; CHECK-NEXT: retq
669
- %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
670
- %partial = extractvalue { i64 , i1 } %t1 , 0
671
- %k1 = extractvalue { i64 , i1 } %t1 , 1
669
+ %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
670
+ %partial = extractvalue { i64 , i1 } %t1 , 0
671
+ %k1 = extractvalue { i64 , i1 } %t1 , 1
672
672
673
- %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %carryin )
674
- %k2 = extractvalue { i64 , i1 } %sum , 1
673
+ %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %carryin )
674
+ %k2 = extractvalue { i64 , i1 } %sum , 1
675
675
676
- %carryout = or i1 %k1 , %k2
676
+ %carryout = or i1 %k1 , %k2
677
677
678
- %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
679
- ret { i64 , i1 } %ret
678
+ %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
679
+ ret { i64 , i1 } %ret
680
680
}
681
681
682
682
; negative test: %carryin does not look like carry
@@ -690,18 +690,18 @@ define { i64, i1 } @addcarry_carry_not_i1(i64 %a, i64 %b, i8 %carryin) nounwind
690
690
; CHECK-NEXT: setb %dl
691
691
; CHECK-NEXT: orb %cl, %dl
692
692
; CHECK-NEXT: retq
693
- %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
694
- %partial = extractvalue { i64 , i1 } %t1 , 0
695
- %k1 = extractvalue { i64 , i1 } %t1 , 1
693
+ %t1 = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %a , i64 %b )
694
+ %partial = extractvalue { i64 , i1 } %t1 , 0
695
+ %k1 = extractvalue { i64 , i1 } %t1 , 1
696
696
697
- %zcarryin = zext i8 %carryin to i64
698
- %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %zcarryin )
699
- %k2 = extractvalue { i64 , i1 } %sum , 1
697
+ %zcarryin = zext i8 %carryin to i64
698
+ %sum = call { i64 , i1 } @llvm.uadd.with.overflow.i64 (i64 %partial , i64 %zcarryin )
699
+ %k2 = extractvalue { i64 , i1 } %sum , 1
700
700
701
- %carryout = or i1 %k1 , %k2
701
+ %carryout = or i1 %k1 , %k2
702
702
703
- %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
704
- ret { i64 , i1 } %ret
703
+ %ret = insertvalue { i64 , i1 } %sum , i1 %carryout , 1
704
+ ret { i64 , i1 } %ret
705
705
}
706
706
707
707
; negative test for combineCarryDiamond(): uaddo mixed with usubo
0 commit comments