From 87d35e8c715f5116b072ef8fd742c0cfb6fb5ce4 Mon Sep 17 00:00:00 2001 From: Nadav Rotem Date: Sat, 19 May 2012 20:30:08 +0000 Subject: On Haswell, perfer storing YMM registers using a single instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157129 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/2012-05-19-avx2-store.ll | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/CodeGen/X86/2012-05-19-avx2-store.ll (limited to 'test/CodeGen/X86/2012-05-19-avx2-store.ll') diff --git a/test/CodeGen/X86/2012-05-19-avx2-store.ll b/test/CodeGen/X86/2012-05-19-avx2-store.ll new file mode 100644 index 0000000000..61fef90139 --- /dev/null +++ b/test/CodeGen/X86/2012-05-19-avx2-store.ll @@ -0,0 +1,14 @@ +; 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: vmovaps + ; CHECK: vinsertf128 + ; 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> + store <8 x i32> %Z, <8 x i32>* %P, align 16 + ret void +} -- cgit v1.2.3