forked from OSchip/llvm-project
parent
e59ee43cf1
commit
29333c9de6
|
@ -1104,6 +1104,8 @@ bool FastISel::selectIntrinsicCall(const IntrinsicInst *II) {
|
||||||
case Intrinsic::lifetime_end:
|
case Intrinsic::lifetime_end:
|
||||||
// The donothing intrinsic does, well, nothing.
|
// The donothing intrinsic does, well, nothing.
|
||||||
case Intrinsic::donothing:
|
case Intrinsic::donothing:
|
||||||
|
// Neither does the assume intrinsic; it's also OK not to codegen its operand.
|
||||||
|
case Intrinsic::assume:
|
||||||
return true;
|
return true;
|
||||||
case Intrinsic::dbg_declare: {
|
case Intrinsic::dbg_declare: {
|
||||||
const DbgDeclareInst *DI = cast<DbgDeclareInst>(II);
|
const DbgDeclareInst *DI = cast<DbgDeclareInst>(II);
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
; RUN: llc -mtriple=aarch64-- -fast-isel -fast-isel-abort=4 -verify-machineinstrs < %s | FileCheck %s
|
||||||
|
|
||||||
|
; Check that we ignore the assume intrinsic.
|
||||||
|
|
||||||
|
; CHECK-LABEL: test:
|
||||||
|
; CHECK: // BB#0:
|
||||||
|
; CHECK-NEXT: ret
|
||||||
|
define void @test(i32 %a) {
|
||||||
|
%tmp0 = icmp slt i32 %a, 0
|
||||||
|
call void @llvm.assume(i1 %tmp0)
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
declare void @llvm.assume(i1)
|
Loading…
Reference in New Issue