[X86] Memory folding for commutative instructions.
[oota-llvm.git] / test / CodeGen / X86 / avx1-stack-reload-folding.ll
1 ; RUN: llc -O3 -disable-peephole -mcpu=corei7-avx -mattr=+avx < %s | FileCheck %s\r
2 \r
3 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"\r
4 target triple = "x86_64-unknown-unknown"\r
5 \r
6 ; Function Attrs: nounwind readonly uwtable\r
7 define <32 x double> @_Z14vstack_foldDv32_dS_(<32 x double> %a, <32 x double> %b) #0 {\r
8   %1 = fadd <32 x double> %a, %b\r
9   %2 = fsub <32 x double> %a, %b\r
10   %3 = fmul <32 x double> %1, %2\r
11   ret <32 x double> %3\r
12 \r
13   ;CHECK-NOT:  vmovapd {{.*#+}} 32-byte Reload\r
14   ;CHECK:       vmulpd {{[0-9]*}}(%rsp), {{%ymm[0-9][0-9]*}}, {{%ymm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload\r
15   ;CHECK-NOT:  vmovapd {{.*#+}} 32-byte Reload\r
16 }\r