brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 2fbacbf Raw
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