mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-30 23:42:52 +01:00
78b8d454cc
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 llvm-svn: 161152
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
|
|
}
|