summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/fp128-cast.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/fp128-cast.ll')
-rw-r--r--llvm/test/CodeGen/X86/fp128-cast.ll216
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
OpenPOWER on IntegriCloud