brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · e9c2e2a Raw
40 lines · plain
1; RUN: llc -mtriple=x86_64-apple-darwin -mattr=+sse2 < %s | FileCheck --check-prefix=SSE2-CODEGEN %s2; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+sse2 -passes="print<cost-model>" 2>&1 -disable-output < %s | FileCheck --check-prefix=SSE2 %s3 4define <4 x i32> @shl(<4 x i32> %vector, i32 %scalar) {5entry:6  ; SSE2: 'shl'7  ; SSE2: cost of 2 {{.*}} shl8  ; SSE2-CODEGEN: movd  %edi, %xmm19  ; SSE2-CODEGEN: pslld %xmm1, %xmm010  %insert = insertelement <4 x i32> undef, i32 %scalar, i32 011  %splat = shufflevector <4 x i32> %insert, <4 x i32> undef, <4 x i32> zeroinitializer12  %ret = shl <4 x i32> %vector , %splat13  ret <4 x i32> %ret14}15 16define <4 x i32> @ashr(<4 x i32> %vector, i32 %scalar) {17entry:18  ; SSE2: 'ashr'19  ; SSE2: cost of 2 {{.*}} ashr20  ; SSE2-CODEGEN: movd  %edi, %xmm121  ; SSE2-CODEGEN: psrad %xmm1, %xmm022  %insert = insertelement <4 x i32> undef, i32 %scalar, i32 023  %splat = shufflevector <4 x i32> %insert, <4 x i32> undef, <4 x i32> zeroinitializer24  %ret = ashr <4 x i32> %vector , %splat25  ret <4 x i32> %ret26}27 28define <4 x i32> @lshr(<4 x i32> %vector, i32 %scalar) {29entry:30  ; SSE2: 'lshr'31  ; SSE2: cost of 2 {{.*}} lshr32  ; SSE2-CODEGEN: movd  %edi, %xmm133  ; SSE2-CODEGEN: psrld %xmm1, %xmm034  %insert = insertelement <4 x i32> undef, i32 %scalar, i32 035  %splat = shufflevector <4 x i32> %insert, <4 x i32> undef, <4 x i32> zeroinitializer36  %ret = lshr <4 x i32> %vector , %splat37  ret <4 x i32> %ret38}39 40