[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / pr36199.ll
blobec18124faad78ea857dce8a738222a3373509180
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx512f | FileCheck %s
4 define void @foo(<16 x float> %x) {
5 ; CHECK-LABEL: foo:
6 ; CHECK:       # %bb.0:
7 ; CHECK-NEXT:    vaddps %xmm0, %xmm0, %xmm0
8 ; CHECK-NEXT:    vshuff64x2 {{.*#+}} zmm0 = zmm0[0,1,0,1,0,1,0,1]
9 ; CHECK-NEXT:    vmovupd %zmm0, (%rax)
10 ; CHECK-NEXT:    vzeroupper
11 ; CHECK-NEXT:    retq
12   %1 = fadd <16 x float> %x, %x
13   %bc256 = bitcast <16 x float> %1 to <4 x i128>
14   %2 = extractelement <4 x i128> %bc256, i32 0
15   %3 = bitcast i128 %2 to <4 x float>
16   %4 = shufflevector <4 x float> %3, <4 x float> undef, <16 x i32> <i32 0, i32
17 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0,
18 i32 1, i32 2, i32 3>
19   store <16 x float> %4, ptr undef, align 4
20   ret void