1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

[X86] Replace X32 check-prefix with X86 and remove unused X64 common prefix

We try to use X32 for gnux32 triple tests
This commit is contained in:
Simon Pilgrim 2020-11-09 14:45:48 +00:00
parent f1a46b83c8
commit 643c2192c2

View File

@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X32
; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s --check-prefixes=X64,X64-LINUX
; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s --check-prefixes=X64,X64-WIN32
; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X86
; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s --check-prefix=X64-LINUX
; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s --check-prefix=X64-WIN32
declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32)
declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32)
@ -9,10 +9,10 @@ declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32)
; The immediate can be encoded in a smaller way if the
; instruction is a sub instead of an add.
define i32 @test1(i32 inreg %a) nounwind {
; X32-LABEL: test1:
; X32: # %bb.0: # %entry
; X32-NEXT: subl $-128, %eax
; X32-NEXT: retl
; X86-LABEL: test1:
; X86: # %bb.0: # %entry
; X86-NEXT: subl $-128, %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test1:
; X64-LINUX: # %bb.0: # %entry
@ -31,12 +31,12 @@ entry:
}
define i32 @test1b(i32* %p) nounwind {
; X32-LABEL: test1b:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl (%eax), %eax
; X32-NEXT: subl $-128, %eax
; X32-NEXT: retl
; X86-LABEL: test1b:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl (%eax), %eax
; X86-NEXT: subl $-128, %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test1b:
; X64-LINUX: # %bb.0: # %entry
@ -56,11 +56,11 @@ entry:
}
define i64 @test2(i64 inreg %a) nounwind {
; X32-LABEL: test2:
; X32: # %bb.0: # %entry
; X32-NEXT: addl $-2147483648, %eax # imm = 0x80000000
; X32-NEXT: adcl $0, %edx
; X32-NEXT: retl
; X86-LABEL: test2:
; X86: # %bb.0: # %entry
; X86-NEXT: addl $-2147483648, %eax # imm = 0x80000000
; X86-NEXT: adcl $0, %edx
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test2:
; X64-LINUX: # %bb.0: # %entry
@ -78,11 +78,11 @@ entry:
ret i64 %b
}
define i64 @test3(i64 inreg %a) nounwind {
; X32-LABEL: test3:
; X32: # %bb.0: # %entry
; X32-NEXT: addl $128, %eax
; X32-NEXT: adcl $0, %edx
; X32-NEXT: retl
; X86-LABEL: test3:
; X86: # %bb.0: # %entry
; X86-NEXT: addl $128, %eax
; X86-NEXT: adcl $0, %edx
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test3:
; X64-LINUX: # %bb.0: # %entry
@ -99,14 +99,14 @@ entry:
}
define i64 @test3b(i64* %p) nounwind {
; X32-LABEL: test3b:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl 4(%ecx), %edx
; X32-NEXT: movl $128, %eax
; X32-NEXT: addl (%ecx), %eax
; X32-NEXT: adcl $0, %edx
; X32-NEXT: retl
; X86-LABEL: test3b:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl 4(%ecx), %edx
; X86-NEXT: movl $128, %eax
; X86-NEXT: addl (%ecx), %eax
; X86-NEXT: adcl $0, %edx
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test3b:
; X64-LINUX: # %bb.0: # %entry
@ -126,17 +126,17 @@ entry:
}
define i1 @test4(i32 %v1, i32 %v2, i32* %X) nounwind {
; X32-LABEL: test4:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: jo .LBB5_2
; X32-NEXT: # %bb.1: # %normal
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl $0, (%eax)
; X32-NEXT: .LBB5_2: # %overflow
; X32-NEXT: xorl %eax, %eax
; X32-NEXT: retl
; X86-LABEL: test4:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: jo .LBB5_2
; X86-NEXT: # %bb.1: # %normal
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl $0, (%eax)
; X86-NEXT: .LBB5_2: # %overflow
; X86-NEXT: xorl %eax, %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test4:
; X64-LINUX: # %bb.0: # %entry
@ -172,17 +172,17 @@ overflow:
}
define i1 @test5(i32 %v1, i32 %v2, i32* %X) nounwind {
; X32-LABEL: test5:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: jb .LBB6_2
; X32-NEXT: # %bb.1: # %normal
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl $0, (%eax)
; X32-NEXT: .LBB6_2: # %carry
; X32-NEXT: xorl %eax, %eax
; X32-NEXT: retl
; X86-LABEL: test5:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: jb .LBB6_2
; X86-NEXT: # %bb.1: # %normal
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl $0, (%eax)
; X86-NEXT: .LBB6_2: # %carry
; X86-NEXT: xorl %eax, %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test5:
; X64-LINUX: # %bb.0: # %entry
@ -218,12 +218,12 @@ carry:
}
define i64 @test6(i64 %A, i32 %B) nounwind {
; X32-LABEL: test6:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
; X32-NEXT: addl {{[0-9]+}}(%esp), %edx
; X32-NEXT: retl
; X86-LABEL: test6:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
; X86-NEXT: addl {{[0-9]+}}(%esp), %edx
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test6:
; X64-LINUX: # %bb.0: # %entry
@ -246,12 +246,12 @@ entry:
}
define {i32, i1} @test7(i32 %v1, i32 %v2) nounwind {
; X32-LABEL: test7:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: setb %dl
; X32-NEXT: retl
; X86-LABEL: test7:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: setb %dl
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test7:
; X64-LINUX: # %bb.0: # %entry
@ -273,14 +273,14 @@ entry:
; PR5443
define {i64, i1} @test8(i64 %left, i64 %right) nounwind {
; X32-LABEL: test8:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: adcl {{[0-9]+}}(%esp), %edx
; X32-NEXT: setb %cl
; X32-NEXT: retl
; X86-LABEL: test8:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: adcl {{[0-9]+}}(%esp), %edx
; X86-NEXT: setb %cl
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test8:
; X64-LINUX: # %bb.0: # %entry
@ -308,14 +308,14 @@ entry:
}
define i32 @test9(i32 %x, i32 %y) nounwind readnone {
; X32-LABEL: test9:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: xorl %ecx, %ecx
; X32-NEXT: cmpl $10, {{[0-9]+}}(%esp)
; X32-NEXT: sete %cl
; X32-NEXT: subl %ecx, %eax
; X32-NEXT: retl
; X86-LABEL: test9:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: xorl %ecx, %ecx
; X86-NEXT: cmpl $10, {{[0-9]+}}(%esp)
; X86-NEXT: sete %cl
; X86-NEXT: subl %ecx, %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test9:
; X64-LINUX: # %bb.0: # %entry
@ -342,12 +342,12 @@ entry:
}
define i1 @test10(i32 %x) nounwind {
; X32-LABEL: test10:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: incl %eax
; X32-NEXT: seto %al
; X32-NEXT: retl
; X86-LABEL: test10:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: incl %eax
; X86-NEXT: seto %al
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test10:
; X64-LINUX: # %bb.0: # %entry
@ -367,10 +367,10 @@ entry:
}
define void @test11(i32* inreg %a) nounwind {
; X32-LABEL: test11:
; X32: # %bb.0: # %entry
; X32-NEXT: subl $-128, (%eax)
; X32-NEXT: retl
; X86-LABEL: test11:
; X86: # %bb.0: # %entry
; X86-NEXT: subl $-128, (%eax)
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test11:
; X64-LINUX: # %bb.0: # %entry
@ -389,11 +389,11 @@ entry:
}
define void @test12(i64* inreg %a) nounwind {
; X32-LABEL: test12:
; X32: # %bb.0: # %entry
; X32-NEXT: addl $-2147483648, (%eax) # imm = 0x80000000
; X32-NEXT: adcl $0, 4(%eax)
; X32-NEXT: retl
; X86-LABEL: test12:
; X86: # %bb.0: # %entry
; X86-NEXT: addl $-2147483648, (%eax) # imm = 0x80000000
; X86-NEXT: adcl $0, 4(%eax)
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test12:
; X64-LINUX: # %bb.0: # %entry
@ -412,11 +412,11 @@ entry:
}
define void @test13(i64* inreg %a) nounwind {
; X32-LABEL: test13:
; X32: # %bb.0: # %entry
; X32-NEXT: addl $128, (%eax)
; X32-NEXT: adcl $0, 4(%eax)
; X32-NEXT: retl
; X86-LABEL: test13:
; X86: # %bb.0: # %entry
; X86-NEXT: addl $128, (%eax)
; X86-NEXT: adcl $0, 4(%eax)
; X86-NEXT: retl
;
; X64-LINUX-LABEL: test13:
; X64-LINUX: # %bb.0: # %entry
@ -435,11 +435,11 @@ entry:
}
define i32 @inc_not(i32 %a) {
; X32-LABEL: inc_not:
; X32: # %bb.0:
; X32-NEXT: xorl %eax, %eax
; X32-NEXT: subl {{[0-9]+}}(%esp), %eax
; X32-NEXT: retl
; X86-LABEL: inc_not:
; X86: # %bb.0:
; X86-NEXT: xorl %eax, %eax
; X86-NEXT: subl {{[0-9]+}}(%esp), %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: inc_not:
; X64-LINUX: # %bb.0:
@ -458,26 +458,26 @@ define i32 @inc_not(i32 %a) {
}
define <4 x i32> @inc_not_vec(<4 x i32> %a) nounwind {
; X32-LABEL: inc_not_vec:
; X32: # %bb.0:
; X32-NEXT: pushl %edi
; X32-NEXT: pushl %esi
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: xorl %ecx, %ecx
; X32-NEXT: xorl %edx, %edx
; X32-NEXT: subl {{[0-9]+}}(%esp), %edx
; X32-NEXT: xorl %esi, %esi
; X32-NEXT: subl {{[0-9]+}}(%esp), %esi
; X32-NEXT: xorl %edi, %edi
; X32-NEXT: subl {{[0-9]+}}(%esp), %edi
; X32-NEXT: subl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl %ecx, 12(%eax)
; X32-NEXT: movl %edi, 8(%eax)
; X32-NEXT: movl %esi, 4(%eax)
; X32-NEXT: movl %edx, (%eax)
; X32-NEXT: popl %esi
; X32-NEXT: popl %edi
; X32-NEXT: retl $4
; X86-LABEL: inc_not_vec:
; X86: # %bb.0:
; X86-NEXT: pushl %edi
; X86-NEXT: pushl %esi
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: xorl %ecx, %ecx
; X86-NEXT: xorl %edx, %edx
; X86-NEXT: subl {{[0-9]+}}(%esp), %edx
; X86-NEXT: xorl %esi, %esi
; X86-NEXT: subl {{[0-9]+}}(%esp), %esi
; X86-NEXT: xorl %edi, %edi
; X86-NEXT: subl {{[0-9]+}}(%esp), %edi
; X86-NEXT: subl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl %ecx, 12(%eax)
; X86-NEXT: movl %edi, 8(%eax)
; X86-NEXT: movl %esi, 4(%eax)
; X86-NEXT: movl %edx, (%eax)
; X86-NEXT: popl %esi
; X86-NEXT: popl %edi
; X86-NEXT: retl $4
;
; X64-LINUX-LABEL: inc_not_vec:
; X64-LINUX: # %bb.0:
@ -497,15 +497,15 @@ define <4 x i32> @inc_not_vec(<4 x i32> %a) nounwind {
}
define void @uaddo1_not(i32 %a, i32* %p0, i1* %p1) {
; X32-LABEL: uaddo1_not:
; X32: # %bb.0:
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: xorl %edx, %edx
; X32-NEXT: subl {{[0-9]+}}(%esp), %edx
; X32-NEXT: movl %edx, (%ecx)
; X32-NEXT: setae (%eax)
; X32-NEXT: retl
; X86-LABEL: uaddo1_not:
; X86: # %bb.0:
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: xorl %edx, %edx
; X86-NEXT: subl {{[0-9]+}}(%esp), %edx
; X86-NEXT: movl %edx, (%ecx)
; X86-NEXT: setae (%eax)
; X86-NEXT: retl
;
; X64-LINUX-LABEL: uaddo1_not:
; X64-LINUX: # %bb.0:
@ -530,11 +530,11 @@ define void @uaddo1_not(i32 %a, i32* %p0, i1* %p1) {
}
define i32 @add_to_sub(i32 %a, i32 %b) {
; X32-LABEL: add_to_sub:
; X32: # %bb.0:
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: subl {{[0-9]+}}(%esp), %eax
; X32-NEXT: retl
; X86-LABEL: add_to_sub:
; X86: # %bb.0:
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: subl {{[0-9]+}}(%esp), %eax
; X86-NEXT: retl
;
; X64-LINUX-LABEL: add_to_sub:
; X64-LINUX: # %bb.0:
@ -558,19 +558,19 @@ declare void @bar_i64(i64)
; Make sure we can use sub -128 for add 128 when the flags are used.
define void @add_i32_128_flag(i32 %x) {
; X32-LABEL: add_i32_128_flag:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: subl $-128, %eax
; X32-NEXT: je .LBB19_2
; X32-NEXT: # %bb.1: # %if.then
; X32-NEXT: pushl %eax
; X32-NEXT: .cfi_adjust_cfa_offset 4
; X32-NEXT: calll bar_i32
; X32-NEXT: addl $4, %esp
; X32-NEXT: .cfi_adjust_cfa_offset -4
; X32-NEXT: .LBB19_2: # %if.end
; X32-NEXT: retl
; X86-LABEL: add_i32_128_flag:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: subl $-128, %eax
; X86-NEXT: je .LBB19_2
; X86-NEXT: # %bb.1: # %if.then
; X86-NEXT: pushl %eax
; X86-NEXT: .cfi_adjust_cfa_offset 4
; X86-NEXT: calll bar_i32
; X86-NEXT: addl $4, %esp
; X86-NEXT: .cfi_adjust_cfa_offset -4
; X86-NEXT: .LBB19_2: # %if.end
; X86-NEXT: retl
;
; X64-LINUX-LABEL: add_i32_128_flag:
; X64-LINUX: # %bb.0: # %entry
@ -604,25 +604,25 @@ if.end:
; Make sure we can use sub -128 for add 128 when the flags are used.
define void @add_i64_128_flag(i64 %x) {
; X32-LABEL: add_i64_128_flag:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl $128, %eax
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: adcl $0, %ecx
; X32-NEXT: movl %eax, %edx
; X32-NEXT: orl %ecx, %edx
; X32-NEXT: je .LBB20_2
; X32-NEXT: # %bb.1: # %if.then
; X32-NEXT: pushl %ecx
; X32-NEXT: .cfi_adjust_cfa_offset 4
; X32-NEXT: pushl %eax
; X32-NEXT: .cfi_adjust_cfa_offset 4
; X32-NEXT: calll bar_i64
; X32-NEXT: addl $8, %esp
; X32-NEXT: .cfi_adjust_cfa_offset -8
; X32-NEXT: .LBB20_2: # %if.end
; X32-NEXT: retl
; X86-LABEL: add_i64_128_flag:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl $128, %eax
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: adcl $0, %ecx
; X86-NEXT: movl %eax, %edx
; X86-NEXT: orl %ecx, %edx
; X86-NEXT: je .LBB20_2
; X86-NEXT: # %bb.1: # %if.then
; X86-NEXT: pushl %ecx
; X86-NEXT: .cfi_adjust_cfa_offset 4
; X86-NEXT: pushl %eax
; X86-NEXT: .cfi_adjust_cfa_offset 4
; X86-NEXT: calll bar_i64
; X86-NEXT: addl $8, %esp
; X86-NEXT: .cfi_adjust_cfa_offset -8
; X86-NEXT: .LBB20_2: # %if.end
; X86-NEXT: retl
;
; X64-LINUX-LABEL: add_i64_128_flag:
; X64-LINUX: # %bb.0: # %entry
@ -656,25 +656,25 @@ if.end:
; Make sure we can use sub -2147483648 for add 2147483648 when the flags are used.
define void @add_i64_2147483648_flag(i64 %x) {
; X32-LABEL: add_i64_2147483648_flag:
; X32: # %bb.0: # %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl $-2147483648, %eax # imm = 0x80000000
; X32-NEXT: addl {{[0-9]+}}(%esp), %eax
; X32-NEXT: adcl $0, %ecx
; X32-NEXT: movl %eax, %edx
; X32-NEXT: orl %ecx, %edx
; X32-NEXT: je .LBB21_2
; X32-NEXT: # %bb.1: # %if.then
; X32-NEXT: pushl %ecx
; X32-NEXT: .cfi_adjust_cfa_offset 4
; X32-NEXT: pushl %eax
; X32-NEXT: .cfi_adjust_cfa_offset 4
; X32-NEXT: calll bar_i64
; X32-NEXT: addl $8, %esp
; X32-NEXT: .cfi_adjust_cfa_offset -8
; X32-NEXT: .LBB21_2: # %if.end
; X32-NEXT: retl
; X86-LABEL: add_i64_2147483648_flag:
; X86: # %bb.0: # %entry
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl $-2147483648, %eax # imm = 0x80000000
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
; X86-NEXT: adcl $0, %ecx
; X86-NEXT: movl %eax, %edx
; X86-NEXT: orl %ecx, %edx
; X86-NEXT: je .LBB21_2
; X86-NEXT: # %bb.1: # %if.then
; X86-NEXT: pushl %ecx
; X86-NEXT: .cfi_adjust_cfa_offset 4
; X86-NEXT: pushl %eax
; X86-NEXT: .cfi_adjust_cfa_offset 4
; X86-NEXT: calll bar_i64
; X86-NEXT: addl $8, %esp
; X86-NEXT: .cfi_adjust_cfa_offset -8
; X86-NEXT: .LBB21_2: # %if.end
; X86-NEXT: retl
;
; X64-LINUX-LABEL: add_i64_2147483648_flag:
; X64-LINUX: # %bb.0: # %entry