From c6627eec1364141d1ca61ec342a70b0cd152072d Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Mon, 1 Nov 2010 20:41:43 +0000 Subject: When we look at instructions to convert to setting the 's' flag, we need to look at more than those which define CPSR. You can have this situation: (1) subs ... (2) sub r6, r5, r4 (3) movge ... (4) cmp r6, 0 (5) movge ... We cannot convert (2) to "subs" because (3) is using the CPSR set by (1). There's an analogous situation here: (1) sub r1, r2, r3 (2) sub r4, r5, r6 (3) cmp r4, ... (5) movge ... (6) cmp r1, ... (7) movge ... We cannot convert (1) to "subs" because of the intervening use of CPSR. llvm-svn: 117950 --- llvm/test/CodeGen/ARM/long_shift.ll | 2 -- 1 file changed, 2 deletions(-) (limited to 'llvm/test/CodeGen/ARM/long_shift.ll') diff --git a/llvm/test/CodeGen/ARM/long_shift.ll b/llvm/test/CodeGen/ARM/long_shift.ll index 45ed2099c95..5e4f5730f8d 100644 --- a/llvm/test/CodeGen/ARM/long_shift.ll +++ b/llvm/test/CodeGen/ARM/long_shift.ll @@ -1,6 +1,4 @@ ; RUN: llc < %s -march=arm | FileCheck %s -; XFAIL: * -; FIXME: Fix after peephole optimizer is fixed. define i64 @f0(i64 %A, i64 %B) { ; CHECK: f0 -- cgit v1.2.3