mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
f8d05d7ce6
we pushed the beginning of the interval back 1, so the interval would overlap with inputs that die. We were also pushing the end of the interval back 1, though, which means the earlyclobber didn't overlap with other output operands. Don't do this. PR 4964. llvm-svn: 82342
16 lines
650 B
LLVM
16 lines
650 B
LLVM
; RUN: llc < %s | FileCheck %s
|
|
; ModuleID = '4964.c'
|
|
; PR 4964
|
|
; Registers other than RAX, RCX are OK, but they must be different.
|
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
|
target triple = "x86_64-apple-darwin10.0"
|
|
type { i64, i64 } ; type %0
|
|
|
|
define i64 @flsst(i64 %find) nounwind ssp {
|
|
entry:
|
|
; CHECK: FOO %rax %rcx
|
|
%asmtmp = tail call %0 asm sideeffect "FOO $0 $1 $2", "=r,=&r,rm,~{dirflag},~{fpsr},~{flags},~{cc}"(i64 %find) nounwind ; <%0> [#uses=1]
|
|
%asmresult = extractvalue %0 %asmtmp, 0 ; <i64> [#uses=1]
|
|
ret i64 %asmresult
|
|
}
|