mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
39faac2531
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82342 91177308-0d34-0410-b5e6-96231b3b80d8
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
|
|
}
|