mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-22 03:35:35 -04:00
a223e90991
When splitting a large load to smaller legally-typed loads, the last load should be padded to reach the size of the previous one so a CONCAT_VECTORS node could reunite them again. The code currently pads the last load to reach the size of the first load (instead of the previous). Differential Revision: https://reviews.llvm.org/D38495 Change-Id: Ib60b55ed26ce901fabf68108daf52683fbd5013f git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317206 91177308-0d34-0410-b5e6-96231b3b80d8
21 lines
764 B
LLVM
21 lines
764 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc %s -O2 -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512bw -o - | FileCheck %s
|
|
|
|
define <112 x i8> @pr34657() local_unnamed_addr {
|
|
; CHECK-LABEL: pr34657
|
|
; CHECK: # BB#0: # %entry
|
|
; CHECK-NEXT: vmovups (%rax), %xmm0
|
|
; CHECK-NEXT: vmovups (%rax), %ymm1
|
|
; CHECK-NEXT: vinsertf64x4 $1, %ymm0, %zmm1, %zmm0
|
|
; CHECK-NEXT: vmovups (%rax), %zmm2
|
|
; CHECK-NEXT: vmovaps %ymm1, 64(%rdi)
|
|
; CHECK-NEXT: vmovaps %zmm2, (%rdi)
|
|
; CHECK-NEXT: vextractf32x4 $2, %zmm0, 96(%rdi)
|
|
; CHECK-NEXT: movq %rdi, %rax
|
|
; CHECK-NEXT: vzeroupper
|
|
; CHECK-NEXT: retq
|
|
entry:
|
|
%wide.vec51 = load <112 x i8>, <112 x i8>* undef, align 2
|
|
ret <112 x i8> %wide.vec51
|
|
}
|