blob: 09082ac21622ba9a1fd0783c4ed37848f57062b6 [file] [log] [blame]
Matt Arsenaultab2232c2016-04-29 19:53:16 +00001; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+avx2 < %s | FileCheck %s
2
3; CHECK-LABEL: {{^}}trunc_shl_7_v4i32_v4i64:
4; CHECK: vpshufd $136, (%rsi), %ymm0
5; CHECK: vpermq $236, %ymm0, %ymm0
6; CHECK: vpslld $7, %xmm0, %xmm0
7; CHECK: vmovdqa %xmm0, (%rdi)
8define void @trunc_shl_7_v4i32_v4i64(<4 x i32> addrspace(1)* %out, <4 x i64> addrspace(1)* %in) {
9 %val = load <4 x i64>, <4 x i64> addrspace(1)* %in
10 %shl = shl <4 x i64> %val, <i64 7, i64 7, i64 7, i64 7>
11 %trunc = trunc <4 x i64> %shl to <4 x i32>
12 store <4 x i32> %trunc, <4 x i32> addrspace(1)* %out
13 ret void
14}