Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Differential D109468 Diff 374440 llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold_optnone.ll
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold_optnone.ll
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | ; | ||||
call void @helper0() | call void @helper0() | ||||
call void @helper1() | call void @helper1() | ||||
call void @helper2() | call void @helper2() | ||||
call void @__kmpc_target_deinit(%struct.ident_t* null, i1 false, i1 false) | call void @__kmpc_target_deinit(%struct.ident_t* null, i1 false, i1 false) | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @helper0() { | define internal void @helper0() { | ||||
; CHECK-LABEL: define {{[^@]+}}@helper0() { | ; CHECK-LABEL: define {{[^@]+}}@helper0 | ||||
; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1:[0-9]+]] | ; CHECK-SAME: () #[[ATTR1:[0-9]+]] { | ||||
; CHECK-NEXT: store i32 undef, i32* @G, align 4 | ; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1]] | ||||
; CHECK-NEXT: store i32 [[THREADLIMIT]], i32* @G, align 4 | |||||
; CHECK-NEXT: ret void | ; CHECK-NEXT: ret void | ||||
; | ; | ||||
%threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | %threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | ||||
store i32 %threadLimit, i32* @G | store i32 %threadLimit, i32* @G | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @helper1() { | define internal void @helper1() { | ||||
; CHECK-LABEL: define {{[^@]+}}@helper1() { | ; CHECK-LABEL: define {{[^@]+}}@helper1() { | ||||
; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1]] | ; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1]] | ||||
; CHECK-NEXT: unreachable | ; CHECK-NEXT: [[C:%.*]] = icmp eq i32 [[THREADLIMIT]], 666 | ||||
; CHECK-NEXT: br i1 [[C]], label [[F:%.*]], label [[T:%.*]] | |||||
; CHECK: t: | ; CHECK: t: | ||||
; CHECK-NEXT: unreachable | ; CHECK-NEXT: call void @helper0() #[[ATTR1]] | ||||
; CHECK-NEXT: ret void | |||||
; CHECK: f: | ; CHECK: f: | ||||
; CHECK-NEXT: unreachable | ; CHECK-NEXT: ret void | ||||
; | ; | ||||
%threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | %threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | ||||
%c = icmp eq i32 %threadLimit, 666 | %c = icmp eq i32 %threadLimit, 666 | ||||
br i1 %c, label %f, label %t | br i1 %c, label %f, label %t | ||||
t: | t: | ||||
call void @helper0() | call void @helper0() | ||||
ret void | ret void | ||||
f: | f: | ||||
ret void | ret void | ||||
} | } | ||||
define internal void @helper2() { | define internal void @helper2() { | ||||
; CHECK-LABEL: define {{[^@]+}}@helper2() { | ; CHECK-LABEL: define {{[^@]+}}@helper2() { | ||||
; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1]] | ; CHECK-NEXT: [[THREADLIMIT:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block() #[[ATTR1]] | ||||
; CHECK-NEXT: store i32 undef, i32* @G, align 4 | ; CHECK-NEXT: store i32 [[THREADLIMIT]], i32* @G, align 4 | ||||
; CHECK-NEXT: ret void | ; CHECK-NEXT: ret void | ||||
; | ; | ||||
%threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | %threadLimit = call i32 @__kmpc_get_hardware_num_threads_in_block() | ||||
store i32 %threadLimit, i32* @G | store i32 %threadLimit, i32* @G | ||||
ret void | ret void | ||||
} | } | ||||
declare i32 @__kmpc_get_hardware_num_threads_in_block() | declare i32 @__kmpc_get_hardware_num_threads_in_block() | ||||
Show All 25 Lines |