diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-06-02 10:55:21 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-06-02 10:55:21 +0000 |
| commit | 0afd5a4d809655148d01954c9ab4c5fd38e0306f (patch) | |
| tree | 60e3ce71a62b1f661df00507d21638fef19f988f /llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll | |
| parent | 7f74dedb39df6a47e8330b937df9e94f39697c60 (diff) | |
| download | bcm5719-llvm-0afd5a4d809655148d01954c9ab4c5fd38e0306f.tar.gz bcm5719-llvm-0afd5a4d809655148d01954c9ab4c5fd38e0306f.zip | |
[X86][SSE] Replace (V)CVTTPS2DQ and VCVTTPD2DQ truncating (round to zero) f32/f64 to i32 with generic IR (llvm)
This patch removes the llvm intrinsics (V)CVTTPS2DQ and VCVTTPD2DQ truncation (round to zero) conversions and auto-upgrades to FP_TO_SINT calls instead.
Note: I looked at updating CVTTPD2DQ as well but this still requires a lot more work to correctly lower.
Differential Revision: http://reviews.llvm.org/D20860
llvm-svn: 271510
Diffstat (limited to 'llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll b/llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll index adee24430ee..c8927f8200d 100644 --- a/llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll +++ b/llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll @@ -1280,11 +1280,10 @@ define <2 x i64> @test_mm_cvttps_epi32(<4 x float> %a0) nounwind { ; X64: # BB#0: ; X64-NEXT: cvttps2dq %xmm0, %xmm0 ; X64-NEXT: retq - %res = call <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float> %a0) + %res = fptosi <4 x float> %a0 to <4 x i32> %bc = bitcast <4 x i32> %res to <2 x i64> ret <2 x i64> %bc } -declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>) nounwind readnone define i32 @test_mm_cvttsd_si32(<2 x double> %a0) nounwind { ; X32-LABEL: test_mm_cvttsd_si32: |

