You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
611 B
24 lines
611 B
; RUN: llc < %s | FileCheck %s
|
|
target triple = "nvptx64-nvidia-cuda"
|
|
|
|
declare void @foo()
|
|
|
|
; Load a value, then call a function. Branch, and use the loaded value only on
|
|
; one side of the branch. The load shouldn't be sunk beneath the call, because
|
|
; the call may modify memory.
|
|
define i32 @f(i32 %x, i32* %ptr, i1 %cond) {
|
|
Start:
|
|
; CHECK: ld.u32
|
|
%ptr_val = load i32, i32* %ptr
|
|
; CHECK: call.uni
|
|
call void @foo()
|
|
br i1 %cond, label %L1, label %L2
|
|
L1:
|
|
%ptr_val2 = add i32 %ptr_val, 100
|
|
br label %L2
|
|
L2:
|
|
%v4 = phi i32 [ %x, %Start ], [ %ptr_val2, %L1 ]
|
|
%v5 = add i32 %v4, 1000
|
|
ret i32 %v5
|
|
}
|