lowerConstantIntrinsics does an RPO traveral, which doesn't reach dead blocks. Remove the assertion that all intrinsics are lowered, because some intrinsics might remain.
32 lines
1.1 KiB
LLVM
32 lines
1.1 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
|
|
; RUN: opt -S < %s -passes=pre-isel-intrinsic-lowering | FileCheck %s
|
|
|
|
define void @test_dead() {
|
|
; CHECK-LABEL: define void @test_dead() {
|
|
; CHECK-NEXT: ret void
|
|
; CHECK: [[DEAD:.*]]:
|
|
; CHECK-NEXT: [[X:%.*]] = call i32 @llvm.objectsize.i32.p21(ptr addrspace(21) null, i1 false, i1 false, i1 false)
|
|
; CHECK-NEXT: br label %[[DEAD]]
|
|
;
|
|
ret void
|
|
|
|
dead:
|
|
%x = call i32 @llvm.objectsize.i32.p21(ptr addrspace(21) null, i1 false, i1 false, i1 false)
|
|
br label %dead
|
|
}
|
|
|
|
define i32 @test_two() {
|
|
; CHECK-LABEL: define i32 @test_two() {
|
|
; CHECK-NEXT: ret i32 -1
|
|
; CHECK: [[DEAD:.*]]:
|
|
; CHECK-NEXT: [[X:%.*]] = call i32 @llvm.objectsize.i32.p21(ptr addrspace(21) null, i1 false, i1 false, i1 false)
|
|
; CHECK-NEXT: br label %[[DEAD]]
|
|
;
|
|
%a = call i32 @llvm.objectsize.i32.p21(ptr addrspace(21) null, i1 false, i1 false, i1 false)
|
|
ret i32 %a
|
|
|
|
dead:
|
|
%x = call i32 @llvm.objectsize.i32.p21(ptr addrspace(21) null, i1 false, i1 false, i1 false)
|
|
br label %dead
|
|
}
|