40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_mem_shuffle2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s3 4; CHECK: .LCPI0_0:5; CHECK-NEXT: .long 0x000000006; CHECK-NEXT: .zero 47; CHECK-NEXT: .long 0x3eb5dbc68; CHECK-NEXT: .long 0x3eb5dbc69; CHECK-NEXT: .zero 410; CHECK-NEXT: .long 0x3eb5dbc611; CHECK-NEXT: .long 0x3eb5dbc612; CHECK-NEXT: .long 0x3eb5dbc613 14; CHECK: .LCPI0_1:15; CHECK-NEXT: .long 316; CHECK-NEXT: .long 317; CHECK-NEXT: .long 118; CHECK-NEXT: .long 119; CHECK-NEXT: .long 620; CHECK-NEXT: .long 721; CHECK-NEXT: .long 622; CHECK-NEXT: .long 423 24define <16 x float> @PR51281(<8 x float> %a0) {25; CHECK-LABEL: PR51281:26; CHECK: # %bb.0:27; CHECK-NEXT: vextractf128 $1, %ymm0, %xmm128; CHECK-NEXT: vshufps {{.*#+}} xmm2 = xmm0[1,0],xmm1[3,0]29; CHECK-NEXT: vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[1,3]30; CHECK-NEXT: vmovsldup {{.*#+}} xmm2 = xmm0[0,0,2,2]31; CHECK-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm132; CHECK-NEXT: vblendps $141, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # ymm1 = mem[0],ymm1[1],mem[2,3],ymm1[4,5,6],mem[7]33; CHECK-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm0[2,3,0,1]34; CHECK-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]35; CHECK-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,3,1,1,6,7,6,4]36; CHECK-NEXT: retq37 %shuffle = shufflevector <8 x float> %a0, <8 x float> <float poison, float 0x3FD6BB78C0000000, float poison, float poison, float poison, float poison, float 0.000000e+00, float poison>, <16 x i32> <i32 7, i32 7, i32 1, i32 1, i32 6, i32 3, i32 6, i32 0, i32 14, i32 0, i32 9, i32 9, i32 7, i32 1, i32 5, i32 9>38 ret <16 x float> %shuffle39}40