Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Attributor/value-simplify.ll
Show First 20 Lines • Show All 1,034 Lines • ▼ Show 20 Lines | |||||
; | ; | ||||
%c = icmp eq i8* null, null | %c = icmp eq i8* null, null | ||||
ret i1 %c | ret i1 %c | ||||
} | } | ||||
define void @test_callee_is_undef(void (i32)* %fn) { | define void @test_callee_is_undef(void (i32)* %fn) { | ||||
; IS__TUNIT____-LABEL: define {{[^@]+}}@test_callee_is_undef | ; IS__TUNIT____-LABEL: define {{[^@]+}}@test_callee_is_undef | ||||
; IS__TUNIT____-SAME: (void (i32)* nocapture nofree [[FN:%.*]]) { | ; IS__TUNIT____-SAME: (void (i32)* nocapture nofree [[FN:%.*]]) { | ||||
; IS__TUNIT____-NEXT: call void @callee_is_undef() | ; IS__TUNIT____-NEXT: call void @callee_is_undef(void ()* undef) | ||||
; IS__TUNIT____-NEXT: call void @unknown_calle_arg_is_undef(void (i32)* nocapture nofree [[FN]]) | ; IS__TUNIT____-NEXT: call void @unknown_calle_arg_is_undef(void (i32)* nocapture nofree [[FN]], i32 undef) | ||||
; IS__TUNIT____-NEXT: ret void | ; IS__TUNIT____-NEXT: ret void | ||||
; | ; | ||||
; IS__CGSCC____-LABEL: define {{[^@]+}}@test_callee_is_undef | ; IS__CGSCC____-LABEL: define {{[^@]+}}@test_callee_is_undef | ||||
; IS__CGSCC____-SAME: (void (i32)* nocapture nofree [[FN:%.*]]) { | ; IS__CGSCC____-SAME: (void (i32)* nocapture nofree [[FN:%.*]]) { | ||||
; IS__CGSCC____-NEXT: unreachable | ; IS__CGSCC____-NEXT: unreachable | ||||
; | ; | ||||
call void @callee_is_undef(void ()* undef) | call void @callee_is_undef(void ()* undef) | ||||
call void @unknown_calle_arg_is_undef(void (i32)* %fn, i32 undef) | call void @unknown_calle_arg_is_undef(void (i32)* %fn, i32 undef) | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @callee_is_undef(void ()* %fn) { | define internal void @callee_is_undef(void ()* %fn) { | ||||
; | ; | ||||
; IS__TUNIT____-LABEL: define {{[^@]+}}@callee_is_undef() { | ; IS__TUNIT____-LABEL: define {{[^@]+}}@callee_is_undef | ||||
; IS__TUNIT____-SAME: (void ()* nocapture nofree noundef nonnull [[FN:%.*]]) { | |||||
; IS__TUNIT____-NEXT: call void undef() | ; IS__TUNIT____-NEXT: call void undef() | ||||
; IS__TUNIT____-NEXT: ret void | ; IS__TUNIT____-NEXT: ret void | ||||
; | ; | ||||
; IS__CGSCC____-LABEL: define {{[^@]+}}@callee_is_undef | ; IS__CGSCC____-LABEL: define {{[^@]+}}@callee_is_undef | ||||
; IS__CGSCC____-SAME: (void ()* nocapture nofree noundef nonnull [[FN:%.*]]) { | ; IS__CGSCC____-SAME: (void ()* nocapture nofree noundef nonnull [[FN:%.*]]) { | ||||
; IS__CGSCC____-NEXT: call void [[FN]]() | ; IS__CGSCC____-NEXT: call void [[FN]]() | ||||
; IS__CGSCC____-NEXT: ret void | ; IS__CGSCC____-NEXT: ret void | ||||
; | ; | ||||
call void %fn() | call void %fn() | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @unknown_calle_arg_is_undef(void (i32)* %fn, i32 %arg) { | define internal void @unknown_calle_arg_is_undef(void (i32)* %fn, i32 %arg) { | ||||
; | ; | ||||
; CHECK-LABEL: define {{[^@]+}}@unknown_calle_arg_is_undef | ; IS__TUNIT____-LABEL: define {{[^@]+}}@unknown_calle_arg_is_undef | ||||
; CHECK-SAME: (void (i32)* nocapture nofree noundef nonnull [[FN:%.*]]) { | ; IS__TUNIT____-SAME: (void (i32)* nocapture nofree noundef nonnull [[FN:%.*]], i32 [[ARG:%.*]]) { | ||||
; CHECK-NEXT: call void [[FN]](i32 undef) | ; IS__TUNIT____-NEXT: call void [[FN]](i32 undef) | ||||
; CHECK-NEXT: ret void | ; IS__TUNIT____-NEXT: ret void | ||||
; | |||||
; IS__CGSCC____-LABEL: define {{[^@]+}}@unknown_calle_arg_is_undef | |||||
; IS__CGSCC____-SAME: (void (i32)* nocapture nofree noundef nonnull [[FN:%.*]]) { | |||||
; IS__CGSCC____-NEXT: call void [[FN]](i32 undef) | |||||
; IS__CGSCC____-NEXT: ret void | |||||
; | ; | ||||
call void %fn(i32 %arg) | call void %fn(i32 %arg) | ||||
ret void | ret void | ||||
} | } | ||||
; Taken from 50683 | ; Taken from 50683 | ||||
; {{{ | ; {{{ | ||||
▲ Show 20 Lines • Show All 204 Lines • Show Last 20 Lines |