blob: 4b311d40745f445b3adbf5af341d53f7b5a5d94b [file] [log] [blame]
Craig Toppera5944aa2018-02-01 20:48:50 +00001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
Craig Topper0c47e8f2018-04-17 17:30:06 +00002; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx512f | FileCheck %s
Craig Toppera5944aa2018-02-01 20:48:50 +00003
4define void @foo() unnamed_addr #0 {
5; CHECK-LABEL: foo:
6; CHECK: # %bb.0:
7; CHECK-NEXT: vaddps %zmm0, %zmm0, %zmm0
8; CHECK-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
9; CHECK-NEXT: vinsertf64x4 $1, %ymm0, %zmm0, %zmm0
10; CHECK-NEXT: vmovups %zmm0, (%rax)
11; CHECK-NEXT: vzeroupper
12; CHECK-NEXT: retq
13 %1 = fadd <16 x float> undef, undef
14 %bc256 = bitcast <16 x float> %1 to <4 x i128>
15 %2 = extractelement <4 x i128> %bc256, i32 0
16 %3 = bitcast i128 %2 to <4 x float>
17 %4 = shufflevector <4 x float> %3, <4 x float> undef, <16 x i32> <i32 0, i32
181, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0,
19i32 1, i32 2, i32 3>
20 store <16 x float> %4, <16 x float>* undef, align 4
21 ret void
22}