@@ -7,12 +7,15 @@ define i128 @test_add_i128(i128 %arg1, i128 %arg2) nounwind {
77; X64: # %bb.0:
88; X64-NEXT: movq %rdx, %rax
99; X64-NEXT: addq %rdi, %rax
10+ ; X64-NEXT: setb %dl
11+ ; X64-NEXT: cmpb $1, %dl
1012; X64-NEXT: adcq %rsi, %rcx
1113; X64-NEXT: movq %rcx, %rdx
1214; X64-NEXT: retq
1315;
1416; X86-LABEL: test_add_i128:
1517; X86: # %bb.0:
18+ ; X86-NEXT: pushl %ebx
1619; X86-NEXT: pushl %edi
1720; X86-NEXT: pushl %esi
1821; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
@@ -21,15 +24,22 @@ define i128 @test_add_i128(i128 %arg1, i128 %arg2) nounwind {
2124; X86-NEXT: movl {{[0-9]+}}(%esp), %esi
2225; X86-NEXT: movl {{[0-9]+}}(%esp), %edi
2326; X86-NEXT: addl {{[0-9]+}}(%esp), %ecx
27+ ; X86-NEXT: setb %bl
28+ ; X86-NEXT: cmpb $1, %bl
2429; X86-NEXT: adcl {{[0-9]+}}(%esp), %edx
30+ ; X86-NEXT: setb %bl
31+ ; X86-NEXT: cmpb $1, %bl
2532; X86-NEXT: adcl {{[0-9]+}}(%esp), %esi
33+ ; X86-NEXT: setb %bl
34+ ; X86-NEXT: cmpb $1, %bl
2635; X86-NEXT: adcl {{[0-9]+}}(%esp), %edi
2736; X86-NEXT: movl %ecx, (%eax)
2837; X86-NEXT: movl %edx, 4(%eax)
2938; X86-NEXT: movl %esi, 8(%eax)
3039; X86-NEXT: movl %edi, 12(%eax)
3140; X86-NEXT: popl %esi
3241; X86-NEXT: popl %edi
42+ ; X86-NEXT: popl %ebx
3343; X86-NEXT: retl
3444 %ret = add i128 %arg1 , %arg2
3545 ret i128 %ret
@@ -46,6 +56,8 @@ define i64 @test_add_i64(i64 %arg1, i64 %arg2) {
4656; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
4757; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
4858; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
59+ ; X86-NEXT: setb %cl
60+ ; X86-NEXT: cmpb $1, %cl
4961; X86-NEXT: adcl {{[0-9]+}}(%esp), %edx
5062; X86-NEXT: retl
5163 %ret = add i64 %arg1 , %arg2
0 commit comments