55 lines · plain
1; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=SSE2; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=AVX3 4define i32 @cvt_test1(float %a) {5; SSE-LABEL: cvt_test16; SSE: cvttss2si %xmm0, %eax7; AVX-LABEL: cvt_test18; AVX: vcvttss2si %xmm0, %eax9 %1 = insertelement <4 x float> undef, float %a, i32 010 %2 = insertelement <4 x float> %1, float 0.000000e+00, i32 111 %3 = insertelement <4 x float> %2, float 0.000000e+00, i32 212 %4 = insertelement <4 x float> %3, float 0.000000e+00, i32 313 %5 = call i32 @llvm.x86.sse.cvttss2si(<4 x float> %4)14 ret i32 %515}16declare i32 @llvm.x86.sse.cvttss2si(<4 x float>) nounwind readnone17 18define i64 @cvt_test2(float %a) {19; SSE-LABEL: cvt_test220; SSE: cvttss2si %xmm0, %rax21; AVX-LABEL: cvt_test222; AVX: vcvttss2si %xmm0, %rax23 %1 = insertelement <4 x float> undef, float %a, i32 024 %2 = insertelement <4 x float> %1, float 0.000000e+00, i32 125 %3 = insertelement <4 x float> %2, float 0.000000e+00, i32 226 %4 = insertelement <4 x float> %3, float 0.000000e+00, i32 327 %5 = call i64 @llvm.x86.sse.cvttss2si64(<4 x float> %4)28 ret i64 %529}30declare i64 @llvm.x86.sse.cvttss2si64(<4 x float>) nounwind readnone31 32define i32 @cvt_test3(double %a) {33; SSE-LABEL: cvt_test334; SSE: cvttsd2si %xmm0, %eax35; AVX-LABEL: cvt_test336; AVX: vcvttsd2si %xmm0, %eax37 %1 = insertelement <2 x double> undef, double %a, i32 038 %2 = insertelement <2 x double> %1, double 0.000000e+00, i32 139 %3 = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %2)40 ret i32 %341}42declare i32 @llvm.x86.sse2.cvttsd2si(<2 x double>) nounwind readnone43 44define i64 @cvt_test4(double %a) {45; SSE-LABEL: cvt_test446; SSE: cvttsd2si %xmm0, %rax47; AVX-LABEL: cvt_test448; AVX: vcvttsd2si %xmm0, %rax49 %1 = insertelement <2 x double> undef, double %a, i32 050 %2 = insertelement <2 x double> %1, double 0.000000e+00, i32 151 %3 = call i64 @llvm.x86.sse2.cvttsd2si64(<2 x double> %2)52 ret i64 %353}54declare i64 @llvm.x86.sse2.cvttsd2si64(<2 x double>) nounwind readnone55