@@ -17,41 +17,18 @@ target triple = "dxilv1.0-unknown-shadermodel6.0-compute"
1717
1818; Function Attrs: noinline nounwind memory(readwrite, inaccessiblemem: none)
1919define void @main () local_unnamed_addr #0 {
20- entry:
21- %_ZL1X_h.i.i3 = call %dx.types.Handle @dx.op.createHandle (i32 57 , i8 0 , i32 0 , i32 0 , i1 false ) #1
22- %0 = call i32 @dx.op.threadId.i32 (i32 93 , i32 0 ) #2
23- %1 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32 (i32 68 , %dx.types.Handle %_ZL1X_h.i.i3 , i32 %0 , i32 0 ) #1
24- %2 = extractvalue %dx.types.ResRet.i32 %1 , 0
25- %cmp.i1.not = icmp eq i32 %2 , 0
26- br i1 %cmp.i1.not , label %_Z4mainDv3_j.exit , label %for.body.i.lr.ph
27-
28- for.body.i.lr.ph: ; preds = %entry
29- %_ZL3Out_h.i.i5 = call %dx.types.Handle @dx.op.createHandle (i32 57 , i8 1 , i32 0 , i32 0 , i1 false ) #1
30- %_ZL2In_h.i.i4 = call %dx.types.Handle @dx.op.createHandle (i32 57 , i8 0 , i32 1 , i32 1 , i1 false ) #1
31- %3 = call %dx.types.ResRet.f32 @dx.op.bufferLoad.f32 (i32 68 , %dx.types.Handle %_ZL2In_h.i.i4 , i32 %0 , i32 0 ) #1
32- %4 = extractvalue %dx.types.ResRet.f32 %3 , 0
33- %5 = extractvalue %dx.types.ResRet.f32 %3 , 1
34- %6 = extractvalue %dx.types.ResRet.f32 %3 , 2
35- %7 = extractvalue %dx.types.ResRet.f32 %3 , 3
36- br label %for.body.i
37-
38- for.body.i: ; preds = %for.body.i.lr.ph, %for.body.i
39- %I.0.i2 = phi i32 [ 0 , %for.body.i.lr.ph ], [ %inc.i , %for.body.i ]
40- call void @dx.op.bufferStore.f32 (i32 69 , %dx.types.Handle %_ZL3Out_h.i.i5 , i32 %0 , i32 0 , float %4 , float %5 , float %6 , float %7 , i8 15 )
41- %inc.i = add nuw i32 %I.0.i2 , 1
42- %8 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32 (i32 68 , %dx.types.Handle %_ZL1X_h.i.i3 , i32 %0 , i32 0 ) #1
43- %9 = extractvalue %dx.types.ResRet.i32 %8 , 0
44- ; CHECK: %cmp.i = icmp ult i32 %inc.i, %9
45- ; CHECK-NEXT: br i1 %cmp.i, label %for.body.i, label %_Z4mainDv3_j.exit
46- %cmp.i = icmp ult i32 %inc.i , %9
20+ entry:
21+ %cmp.i1.not = icmp eq i32 1 , 0
22+ br i1 %cmp.i1.not , label %_Z4mainDv3_j.exit , label %for.body.i
23+
24+ for.body.i: ; preds = %entry
25+ %cmp.i = icmp ult i32 1 , 2
4726 br i1 %cmp.i , label %for.body.i , label %_Z4mainDv3_j.exit , !llvm.loop !16
4827
4928_Z4mainDv3_j.exit: ; preds = %for.body.i, %entry
5029 ret void
5130
5231; uselistorder directives
53- uselistorder %dx.types.Handle %_ZL1X_h.i.i3 , { 1 , 0 }
54- uselistorder i32 %0 , { 3 , 0 , 1 , 2 }
5532 uselistorder label %for.body.i , { 1 , 0 }
5633 }
5734
@@ -66,12 +43,6 @@ declare %dx.types.ResRet.f32 @dx.op.bufferLoad.f32(i32, %dx.types.Handle, i32, i
6643declare void @dx.op.bufferStore.f32 (i32 , %dx.types.Handle , i32 , i32 , float , float , float , float , i8 )
6744
6845; uselistorder directives
69- uselistorder i32 57 , { 1 , 0 , 2 }
70- uselistorder i32 0 , { 3 , 0 , 10 , 1 , 5 , 6 , 9 , 2 , 4 , 7 , 8 }
71- uselistorder i1 false , { 1 , 0 , 2 }
72- uselistorder i32 68 , { 2 , 0 , 1 }
73- uselistorder i32 1 , { 2 , 0 , 1 }
74- uselistorder ptr @dx.op.createHandle , { 2 , 0 , 1 }
7546
7647attributes #0 = { noinline nounwind memory(readwrite, inaccessiblemem: none) }
7748attributes #1 = { memory(read) }
0 commit comments