| ; RUN: opt -S -dxil-intrinsic-expansion -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s |
| |
| ; Regression test for llvm/llvm-project#189438. |
| ; The goal of this test it to make sure compilation finishes successfully. |
| |
| |
| @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 false) |
| |
| define void @main() local_unnamed_addr { |
| entry: |
| %cmp = icmp eq i32 4, 0 |
| br i1 %cmp, label %_Z4mainj.exit, label %for.body.i |
| |
| for.body.i: ; preds = %entry, %for.body.i |
| %phi = phi i32 [ %inc.loop, %for.body.i ], [ 0, %entry ] |
| %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) |
| %inc.counter = tail call noundef i32 @llvm.dx.resource.updatecounter(target("dx.RawBuffer", i32, 1, 0) %binding, i8 1) |
| %inc.loop = add nuw nsw i32 %phi, 1 |
| %exitcond = icmp eq i32 %inc.loop, 4 |
| br i1 %exitcond, label %_Z4mainj.exit, label %for.body.i |
| |
| _Z4mainj.exit: ; preds = %for.body.i, %entry |
| ret void |
| } |