diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/fp128-cast.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/fp128-cast.ll | 216 |
1 files changed, 2 insertions, 214 deletions
diff --git a/llvm/test/CodeGen/X86/fp128-cast.ll b/llvm/test/CodeGen/X86/fp128-cast.ll index f58bee3e189..8f91671e3e5 100644 --- a/llvm/test/CodeGen/X86/fp128-cast.ll +++ b/llvm/test/CodeGen/X86/fp128-cast.ll @@ -1,7 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -O2 -mtriple=x86_64-linux-android -mattr=+mmx | FileCheck %s --check-prefix=X64 -; RUN: llc < %s -O2 -mtriple=x86_64-linux-gnu -mattr=+mmx | FileCheck %s --check-prefix=X64 -; RUN: llc < %s -O2 -mtriple=x86_64-linux-gnu -mattr=-mmx | FileCheck %s --check-prefix=X64_NO_MMX +; RUN: llc < %s -O2 -mtriple=x86_64-linux-android -mattr=+sse | FileCheck %s --check-prefix=X64 +; RUN: llc < %s -O2 -mtriple=x86_64-linux-gnu -mattr=+sse | FileCheck %s --check-prefix=X64 ; RUN: llc < %s -O2 -mtriple=i686-linux-gnu -mattr=+mmx | FileCheck %s --check-prefix=X32 ; Check soft floating point conversion function calls. @@ -25,16 +24,6 @@ define void @TestFPExtF32_F128() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPExtF32_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero -; X64_NO_MMX-NEXT: callq __extendsftf2 -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPExtF32_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -73,16 +62,6 @@ define void @TestFPExtF64_F128() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPExtF64_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero -; X64_NO_MMX-NEXT: callq __extenddftf2 -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPExtF64_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -122,17 +101,6 @@ define void @TestFPExtF80_F128() nounwind { ; X64-NEXT: addq $24, %rsp ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPExtF80_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: subq $24, %rsp -; X64_NO_MMX-NEXT: fldt {{.*}}(%rip) -; X64_NO_MMX-NEXT: fstpt (%rsp) -; X64_NO_MMX-NEXT: callq __extendxftf2 -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: addq $24, %rsp -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPExtF80_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -171,16 +139,6 @@ define void @TestFPToSIF128_I32() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPToSIF128_I32: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __fixtfsi -; X64_NO_MMX-NEXT: movl %eax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPToSIF128_I32: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -210,16 +168,6 @@ define void @TestFPToUIF128_U32() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPToUIF128_U32: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __fixunstfsi -; X64_NO_MMX-NEXT: movl %eax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPToUIF128_U32: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -250,17 +198,6 @@ define void @TestFPToSIF128_I64() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPToSIF128_I64: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __fixtfsi -; X64_NO_MMX-NEXT: cltq -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPToSIF128_I64: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -294,17 +231,6 @@ define void @TestFPToUIF128_U64() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPToUIF128_U64: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __fixunstfsi -; X64_NO_MMX-NEXT: movl %eax, %eax -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPToUIF128_U64: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -336,16 +262,6 @@ define void @TestFPTruncF128_F32() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPTruncF128_F32: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __trunctfsf2 -; X64_NO_MMX-NEXT: movss %xmm0, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPTruncF128_F32: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -375,16 +291,6 @@ define void @TestFPTruncF128_F64() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPTruncF128_F64: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __trunctfdf2 -; X64_NO_MMX-NEXT: movsd %xmm0, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPTruncF128_F64: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -418,16 +324,6 @@ define void @TestFPTruncF128_F80() nounwind { ; X64-NEXT: addq $24, %rsp ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestFPTruncF128_F80: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: movq vf128+{{.*}}(%rip), %rsi -; X64_NO_MMX-NEXT: callq __trunctfxf2 -; X64_NO_MMX-NEXT: fstpt {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestFPTruncF128_F80: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -457,16 +353,6 @@ define void @TestSIToFPI32_F128() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestSIToFPI32_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movl {{.*}}(%rip), %edi -; X64_NO_MMX-NEXT: callq __floatsitf -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestSIToFPI32_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -504,16 +390,6 @@ define void @TestUIToFPU32_F128() #2 { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestUIToFPU32_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movl {{.*}}(%rip), %edi -; X64_NO_MMX-NEXT: callq __floatunsitf -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestUIToFPU32_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -551,16 +427,6 @@ define void @TestSIToFPI64_F128() nounwind { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestSIToFPI64_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: callq __floatditf -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestSIToFPI64_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -599,16 +465,6 @@ define void @TestUIToFPU64_F128() #2 { ; X64-NEXT: popq %rax ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestUIToFPU64_F128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq {{.*}}(%rip), %rdi -; X64_NO_MMX-NEXT: callq __floatunditf -; X64_NO_MMX-NEXT: movq %rdx, vf128+{{.*}}(%rip) -; X64_NO_MMX-NEXT: movq %rax, {{.*}}(%rip) -; X64_NO_MMX-NEXT: popq %rax -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestUIToFPU64_F128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %esi @@ -650,19 +506,6 @@ define i32 @TestConst128(fp128 %v) nounwind { ; X64-NEXT: popq %rcx ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestConst128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movabsq $4611404543450677248, %rcx # imm = 0x3FFF000000000000 -; X64_NO_MMX-NEXT: xorl %edx, %edx -; X64_NO_MMX-NEXT: callq __gttf2 -; X64_NO_MMX-NEXT: xorl %ecx, %ecx -; X64_NO_MMX-NEXT: testl %eax, %eax -; X64_NO_MMX-NEXT: setg %cl -; X64_NO_MMX-NEXT: movl %ecx, %eax -; X64_NO_MMX-NEXT: popq %rcx -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestConst128: ; X32: # %bb.0: # %entry ; X32-NEXT: subl $12, %esp @@ -718,21 +561,6 @@ define i32 @TestBits128(fp128 %ld) nounwind { ; X64-NEXT: addq $24, %rsp ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestBits128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq %rdi, %rdx -; X64_NO_MMX-NEXT: movq %rsi, %rcx -; X64_NO_MMX-NEXT: callq __multf3 -; X64_NO_MMX-NEXT: movq %rax, %rdx -; X64_NO_MMX-NEXT: shrq $32, %rdx -; X64_NO_MMX-NEXT: xorl %ecx, %ecx -; X64_NO_MMX-NEXT: orl %eax, %edx -; X64_NO_MMX-NEXT: sete %cl -; X64_NO_MMX-NEXT: movl %ecx, %eax -; X64_NO_MMX-NEXT: popq %rcx -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestBits128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %edi @@ -798,14 +626,6 @@ define fp128 @TestPair128(i64 %a, i64 %b) nounwind { ; X64-NEXT: movaps -{{[0-9]+}}(%rsp), %xmm0 ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestPair128: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: movq %rsi, %rax -; X64_NO_MMX-NEXT: addq $3, %rax -; X64_NO_MMX-NEXT: adcq $0, %rdi -; X64_NO_MMX-NEXT: movq %rdi, %rdx -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestPair128: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %edi @@ -852,26 +672,6 @@ define fp128 @TestTruncCopysign(fp128 %x, i32 %n) nounwind { ; X64-NEXT: .LBB17_2: # %cleanup ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: TestTruncCopysign: -; X64_NO_MMX: # %bb.0: # %entry -; X64_NO_MMX-NEXT: movl %edx, %ecx -; X64_NO_MMX-NEXT: movq %rsi, %rdx -; X64_NO_MMX-NEXT: movq %rdi, %rax -; X64_NO_MMX-NEXT: cmpl $50001, %ecx # imm = 0xC351 -; X64_NO_MMX-NEXT: jl .LBB17_2 -; X64_NO_MMX-NEXT: # %bb.1: # %if.then -; X64_NO_MMX-NEXT: pushq %rax -; X64_NO_MMX-NEXT: movq %rax, %rdi -; X64_NO_MMX-NEXT: movq %rdx, %rsi -; X64_NO_MMX-NEXT: callq __trunctfdf2 -; X64_NO_MMX-NEXT: andps {{.*}}(%rip), %xmm0 -; X64_NO_MMX-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero -; X64_NO_MMX-NEXT: orps %xmm1, %xmm0 -; X64_NO_MMX-NEXT: callq __extenddftf2 -; X64_NO_MMX-NEXT: addq $8, %rsp -; X64_NO_MMX-NEXT: .LBB17_2: # %cleanup -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: TestTruncCopysign: ; X32: # %bb.0: # %entry ; X32-NEXT: pushl %edi @@ -947,12 +747,6 @@ define i1 @PR34866(i128 %x) nounwind { ; X64-NEXT: sete %al ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: PR34866: -; X64_NO_MMX: # %bb.0: -; X64_NO_MMX-NEXT: orq %rsi, %rdi -; X64_NO_MMX-NEXT: sete %al -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: PR34866: ; X32: # %bb.0: ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -978,12 +772,6 @@ define i1 @PR34866_commute(i128 %x) nounwind { ; X64-NEXT: sete %al ; X64-NEXT: retq ; -; X64_NO_MMX-LABEL: PR34866_commute: -; X64_NO_MMX: # %bb.0: -; X64_NO_MMX-NEXT: orq %rsi, %rdi -; X64_NO_MMX-NEXT: sete %al -; X64_NO_MMX-NEXT: retq -; ; X32-LABEL: PR34866_commute: ; X32: # %bb.0: ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax |