[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / pr42905.ll
blobbb51aced225c6a7e7f9e04c0959b56944655860d
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s
4 define <4 x double> @autogen_SD30452(i1 %L230) {
5 ; CHECK-LABEL: autogen_SD30452:
6 ; CHECK:       # %bb.0: # %BB
7 ; CHECK-NEXT:    movdqa {{.*#+}} xmm1 = [151829,151829]
8 ; CHECK-NEXT:    movq %xmm0, %rax
9 ; CHECK-NEXT:    cvtsi2sd %rax, %xmm0
10 ; CHECK-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]
11 ; CHECK-NEXT:    movq %xmm2, %rax
12 ; CHECK-NEXT:    xorps %xmm2, %xmm2
13 ; CHECK-NEXT:    cvtsi2sd %rax, %xmm2
14 ; CHECK-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm2[0]
15 ; CHECK-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
16 ; CHECK-NEXT:    cvtdq2pd %xmm1, %xmm1
17 ; CHECK-NEXT:    retq
18 BB:
19   %I = insertelement <4 x i64> zeroinitializer, i64 151829, i32 3
20   %Shuff7 = shufflevector <4 x i64> %I, <4 x i64> zeroinitializer, <4 x i32> <i32 undef, i32 undef, i32 3, i32 undef>
21   br label %CF242
23 CF242:                                            ; preds = %CF242, %BB
24   %FC125 = sitofp <4 x i64> %Shuff7 to <4 x double>
25   ret <4 x double> %FC125