1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefixes=X86 3; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=X64 4 5define i32 @test_addcarry_32_x_0_false(i32 %a0) { 6; X86-LABEL: test_addcarry_32_x_0_false: 7; X86: # %bb.0: 8; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 9; X86-NEXT: retl 10; 11; X64-LABEL: test_addcarry_32_x_0_false: 12; X64: # %bb.0: 13; X64-NEXT: movl %edi, %eax 14; X64-NEXT: retq 15 %1 = tail call { i8, i32 } @llvm.x86.addcarry.32(i8 0, i32 %a0, i32 0) 16 %2 = extractvalue { i8, i32 } %1, 1 17 ret i32 %2 18} 19 20define i32 @test_addcarry_32_0_x_false(i32 %a0) { 21; X86-LABEL: test_addcarry_32_0_x_false: 22; X86: # %bb.0: 23; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 24; X86-NEXT: retl 25; 26; X64-LABEL: test_addcarry_32_0_x_false: 27; X64: # %bb.0: 28; X64-NEXT: movl %edi, %eax 29; X64-NEXT: retq 30 %1 = tail call { i8, i32 } @llvm.x86.addcarry.32(i8 0, i32 0, i32 %a0) 31 %2 = extractvalue { i8, i32 } %1, 1 32 ret i32 %2 33} 34 35define i32 @test_subborrow_32_x_0_false(i32 %a0) { 36; X86-LABEL: test_subborrow_32_x_0_false: 37; X86: # %bb.0: 38; X86-NEXT: movl {{[0-9]+}}(%esp), %eax 39; X86-NEXT: retl 40; 41; X64-LABEL: test_subborrow_32_x_0_false: 42; X64: # %bb.0: 43; X64-NEXT: movl %edi, %eax 44; X64-NEXT: retq 45 %1 = tail call { i8, i32 } @llvm.x86.subborrow.32(i8 0, i32 %a0, i32 0) 46 %2 = extractvalue { i8, i32 } %1, 1 47 ret i32 %2 48} 49 50define i32 @test_subborrow_32_0_x_false(i32 %a0) { 51; X86-LABEL: test_subborrow_32_0_x_false: 52; X86: # %bb.0: 53; X86-NEXT: xorl %eax, %eax 54; X86-NEXT: subl {{[0-9]+}}(%esp), %eax 55; X86-NEXT: retl 56; 57; X64-LABEL: test_subborrow_32_0_x_false: 58; X64: # %bb.0: 59; X64-NEXT: movl %edi, %eax 60; X64-NEXT: negl %eax 61; X64-NEXT: retq 62 %1 = tail call { i8, i32 } @llvm.x86.subborrow.32(i8 0, i32 0, i32 %a0) 63 %2 = extractvalue { i8, i32 } %1, 1 64 ret i32 %2 65} 66 67declare { i8, i32 } @llvm.x86.addcarry.32(i8, i32, i32) 68declare { i8, i32 } @llvm.x86.subborrow.32(i8, i32, i32) 69