blob: 81c5b154accc43eca8d22b019960e7ec77487e5f [file]
; RUN: opt -S -dxil-intrinsic-expansion -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
@Out.str = private unnamed_addr constant [4 x i8] c"Out\00", align 1
; CHECK-LABEL: define void @main
; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 %phi, i1 true)
define void @main() local_unnamed_addr {
entry:
br label %while.body.i
while.body.i:
%phi = phi i32 [ 0, %entry ], [ %nuri, %while.body.i ]
%binding = tail call target("dx.RawBuffer", i32, 1, 0) @llvm.dx.resource.handlefrombinding(i32 0, i32 0, i32 4, i32 %phi, ptr nonnull @Out.str)
%update.counter = tail call noundef i32 @llvm.dx.resource.updatecounter(target("dx.RawBuffer", i32, 1, 0) %binding, i8 1)
%inc = add nuw nsw i32 %phi, 1
%nuri = tail call noundef i32 @llvm.dx.resource.nonuniformindex(i32 %inc)
%cmp = icmp ult i32 %nuri, 4
br i1 %cmp, label %while.body.i, label %exit
exit:
ret void
}