[MIPS GlobalISel] Select MSA vector generic and builtin add
[llvm-complete.git] / test / CodeGen / X86 / pr36199.ll
blob1dc9a3ab94b36e4150d5ea180631eac9e0d3bad9
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:    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> %x, %x
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
18 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 0,
19 i32 1, i32 2, i32 3>
20   store <16 x float> %4, <16 x float>* undef, align 4
21   ret void