mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 13:11:39 +01:00
[arm][darwin] Don't generate libcalls for wide shifts on Darwin
Similar to ceb801612a678bdffe7e7bf163bd0eed9c9b73a2. Darwin doesn't always use compiler-rt, and so we can't assume that these functions are available on arm.
This commit is contained in:
parent
ecc953fc36
commit
e8f8b62f7f
@ -17958,7 +17958,8 @@ bool ARMTargetLowering::isCheapToSpeculateCtlz() const {
|
||||
}
|
||||
|
||||
bool ARMTargetLowering::shouldExpandShift(SelectionDAG &DAG, SDNode *N) const {
|
||||
return !Subtarget->hasMinSize() || Subtarget->isTargetWindows();
|
||||
return !Subtarget->hasMinSize() || Subtarget->isTargetWindows() ||
|
||||
Subtarget->isTargetDarwin();
|
||||
}
|
||||
|
||||
Value *ARMTargetLowering::emitLoadLinked(IRBuilder<> &Builder, Value *Addr,
|
||||
|
@ -1,11 +1,16 @@
|
||||
; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
|
||||
; RUN: llc -mtriple=thumbv7-windows %s -o - | FileCheck %s -check-prefix=CHECK-WIN
|
||||
; RUN: llc < %s -mtriple=aarch64-apple-darwin | FileCheck %s -check-prefix=CHECK-DARWIN
|
||||
|
||||
; The Windows runtime doesn't have these.
|
||||
; CHECK-WIN-NOT: __ashldi3
|
||||
; CHECK-WIN-NOT: __ashrdi3
|
||||
; CHECK-WIN-NOT: __lshrdi3
|
||||
|
||||
; Darwin compiler-rt excludes these.
|
||||
; CHECK-DARWIN-NOT: __ashlti3
|
||||
; CHECK-DARWIN-NOT: __ashrti3
|
||||
|
||||
define i64 @f0(i64 %val, i64 %amt) minsize optsize {
|
||||
; CHECK-LABEL: f0:
|
||||
; CHECK: bl __aeabi_llsl
|
||||
|
Loading…
x
Reference in New Issue
Block a user