1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 02:33:06 +01:00

[X86][AVX] Add test case for PR51281

(cherry picked from commit 6569b7f90239b5932465a1c6936632b4a9527d66)
This commit is contained in:
Simon Pilgrim 2021-07-30 14:10:29 +01:00 committed by Tom Stellard
parent df3286259b
commit 70f5e23577

View File

@ -0,0 +1,39 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_mem_shuffle
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s
; CHECK: .LCPI0_0:
; CHECK-NEXT: .long 0x00000000
; CHECK-NEXT: .zero 4
; CHECK-NEXT: .long 0x3eb5dbc6
; CHECK-NEXT: .long 0x3eb5dbc6
; CHECK-NEXT: .zero 4
; CHECK-NEXT: .long 0x3eb5dbc6
; CHECK-NEXT: .zero 4
; CHECK-NEXT: .zero 4
; CHECK: .LCPI0_1:
; CHECK-NEXT: .long 3
; CHECK-NEXT: .long 3
; CHECK-NEXT: .long 1
; CHECK-NEXT: .long 1
; CHECK-NEXT: .long 6
; CHECK-NEXT: .long 7
; CHECK-NEXT: .long 6
; CHECK-NEXT: .long 4
define <16 x float> @PR51281(<8 x float> %a0) {
; CHECK-LABEL: PR51281:
; CHECK: # %bb.0:
; CHECK-NEXT: vextractf128 $1, %ymm0, %xmm1
; CHECK-NEXT: vshufps {{.*#+}} xmm2 = xmm0[1,0],xmm1[3,0]
; CHECK-NEXT: vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[1,3]
; CHECK-NEXT: vmovsldup {{.*#+}} xmm2 = xmm0[0,0,2,2]
; CHECK-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
; 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]
; CHECK-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm0[2,3,0,1]
; CHECK-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1],ymm2[2,3,4,5],ymm0[6],ymm2[7]
; CHECK-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,3,1,1,6,7,6,4]
; CHECK-NEXT: retq
%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>
ret <16 x float> %shuffle
}