79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X863; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X644 5define <2 x i64> @shl1(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp {6; X86-LABEL: shl1:7; X86: # %bb.0: # %entry8; X86-NEXT: pslld $23, %xmm19; X86-NEXT: paddd {{\.?LCPI[0-9]+_[0-9]+}}, %xmm110; X86-NEXT: cvttps2dq %xmm1, %xmm111; X86-NEXT: pmulld %xmm1, %xmm012; X86-NEXT: retl13;14; X64-LABEL: shl1:15; X64: # %bb.0: # %entry16; X64-NEXT: pslld $23, %xmm117; X64-NEXT: paddd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm118; X64-NEXT: cvttps2dq %xmm1, %xmm119; X64-NEXT: pmulld %xmm1, %xmm020; X64-NEXT: retq21entry:22 %shl = shl <4 x i32> %r, %a ; <<4 x i32>> [#uses=1]23 %tmp2 = bitcast <4 x i32> %shl to <2 x i64> ; <<2 x i64>> [#uses=1]24 ret <2 x i64> %tmp225}26 27define <2 x i64> @shl2(<16 x i8> %r, <16 x i8> %a) nounwind readnone ssp {28; X86-LABEL: shl2:29; X86: # %bb.0: # %entry30; X86-NEXT: movdqa %xmm1, %xmm231; X86-NEXT: movdqa %xmm0, %xmm132; X86-NEXT: psllw $5, %xmm233; X86-NEXT: movdqa %xmm0, %xmm334; X86-NEXT: psllw $4, %xmm335; X86-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}, %xmm336; X86-NEXT: movdqa %xmm2, %xmm037; X86-NEXT: pblendvb %xmm0, %xmm3, %xmm138; X86-NEXT: movdqa %xmm1, %xmm339; X86-NEXT: psllw $2, %xmm340; X86-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}, %xmm341; X86-NEXT: paddb %xmm2, %xmm242; X86-NEXT: movdqa %xmm2, %xmm043; X86-NEXT: pblendvb %xmm0, %xmm3, %xmm144; X86-NEXT: movdqa %xmm1, %xmm345; X86-NEXT: paddb %xmm1, %xmm346; X86-NEXT: paddb %xmm2, %xmm247; X86-NEXT: movdqa %xmm2, %xmm048; X86-NEXT: pblendvb %xmm0, %xmm3, %xmm149; X86-NEXT: movdqa %xmm1, %xmm050; X86-NEXT: retl51;52; X64-LABEL: shl2:53; X64: # %bb.0: # %entry54; X64-NEXT: movdqa %xmm0, %xmm255; X64-NEXT: psllw $5, %xmm156; X64-NEXT: movdqa %xmm0, %xmm357; X64-NEXT: psllw $4, %xmm358; X64-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm359; X64-NEXT: movdqa %xmm1, %xmm060; X64-NEXT: pblendvb %xmm0, %xmm3, %xmm261; X64-NEXT: movdqa %xmm2, %xmm362; X64-NEXT: psllw $2, %xmm363; X64-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm364; X64-NEXT: paddb %xmm1, %xmm165; X64-NEXT: movdqa %xmm1, %xmm066; X64-NEXT: pblendvb %xmm0, %xmm3, %xmm267; X64-NEXT: movdqa %xmm2, %xmm368; X64-NEXT: paddb %xmm2, %xmm369; X64-NEXT: paddb %xmm1, %xmm170; X64-NEXT: movdqa %xmm1, %xmm071; X64-NEXT: pblendvb %xmm0, %xmm3, %xmm272; X64-NEXT: movdqa %xmm2, %xmm073; X64-NEXT: retq74entry:75 %shl = shl <16 x i8> %r, %a ; <<16 x i8>> [#uses=1]76 %tmp2 = bitcast <16 x i8> %shl to <2 x i64> ; <<2 x i64>> [#uses=1]77 ret <2 x i64> %tmp278}79