From 72f7b0811efef58080a909abbc14d74c40c0867d Mon Sep 17 00:00:00 2001 From: Nadav Rotem Date: Sat, 29 Sep 2012 06:33:25 +0000 Subject: A DAGCombine optimization for merging consecutive stores. This optimization is not profitable in many cases because moden processos can store multiple values in parallel, and preparing the consecutive store requires some work. We only handle these cases: 1. Consecutive stores where the values and consecutive loads. For example: int a = p->a; int b = p->b; q->a = a; q->b = b; 2. Consecutive stores where the values are constants. Foe example: q->a = 4; q->b = 5; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164885 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/loop-strength-reduce-2.ll | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'test/CodeGen/X86/loop-strength-reduce-2.ll') diff --git a/test/CodeGen/X86/loop-strength-reduce-2.ll b/test/CodeGen/X86/loop-strength-reduce-2.ll index b546462b68..b094fed2f6 100644 --- a/test/CodeGen/X86/loop-strength-reduce-2.ll +++ b/test/CodeGen/X86/loop-strength-reduce-2.ll @@ -1,20 +1,18 @@ -; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC -; RUN: llc < %s -march=x86 -relocation-model=static | FileCheck %s -check-prefix=STATIC +; RUN: llc < %s -march=x86 -mcpu=corei7 -relocation-model=pic | FileCheck %s -check-prefix=PIC +; RUN: llc < %s -march=x86 -mcpu=corei7 -relocation-model=static | FileCheck %s -check-prefix=STATIC ; ; Make sure the common loop invariant A is hoisted up to preheader, ; since too many registers are needed to subsume it into the addressing modes. ; It's safe to sink A in when it's not pic. ; PIC: align -; PIC: movl $4, -4([[REG:%e[a-z]+]]) -; PIC: movl $5, ([[REG]]) +; PIC: movlpd %xmm0, -4([[REG:%e[a-z]+]]) ; PIC: addl $4, [[REG]] ; PIC: decl {{%e[[a-z]+}} ; PIC: jne ; STATIC: align -; STATIC: movl $4, -4(%ecx) -; STATIC: movl $5, (%ecx) +; STATIC: movlpd %xmm0, -4(%ecx) ; STATIC: addl $4, %ecx ; STATIC: decl %eax ; STATIC: jne -- cgit v1.2.3