mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-05 17:30:02 +00:00
Machine CSE and other optimizations can remove instructions so folding is possible at peephole while not possible at ISel. This patch is a rework of r160919 and was tested on clang self-host on my local machine. rdar://10554090 and rdar://11873276 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161152 91177308-0d34-0410-b5e6-96231b3b80d8
14 lines
497 B
LLVM
14 lines
497 B
LLVM
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx2 | FileCheck %s
|
|
|
|
define void @double_save(<4 x i32>* %Ap, <4 x i32>* %Bp, <8 x i32>* %P) nounwind ssp {
|
|
entry:
|
|
; CHECK: vmovaps
|
|
; CHECK: vinsertf128 $1, ([[A0:%rdi|%rsi]]),
|
|
; CHECK: vmovups
|
|
%A = load <4 x i32>* %Ap
|
|
%B = load <4 x i32>* %Bp
|
|
%Z = shufflevector <4 x i32>%A, <4 x i32>%B, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
|
|
store <8 x i32> %Z, <8 x i32>* %P, align 16
|
|
ret void
|
|
}
|