================
@@ -0,0 +1,29 @@
+; RUN: opt -S --dxil-prepare %s | FileCheck %s
+
+; Test that only metadata nodes that are valid in DXIL are allowed through
+
+target triple = "dxilv1.0-unknown-shadermodel6.0-compute"
+
+; Function Attrs: noinline nounwind memory(readwrite, inaccessiblemem: none)
+define void @main(i32* %ptr) {
+entry:  
+  ; metadata ID changes to 0 once the current !0 and !1 are removed
+  ; since they aren't in the whitelist. range needs a payload.
+  ; CHECK: %val = load i32, ptr %ptr, align 4, !range [[RANGEMD:![0-9]+]]
+  %val = load i32, ptr %ptr, align 4, !range !2
+
+  %cmp.i = icmp ult i32 1, 2
+  br i1 %cmp.i, label %_Z4mainDv3_j.exit, label %_Z4mainDv3_j.exit, !llvm.loop 
!0
+
+_Z4mainDv3_j.exit:                                ; preds = %for.body.i, %entry
+  ret void
----------------
bogner wrote:

You can check that the loop metadata is stripped here by using a regex for the 
end of the line:
```suggestion
  %cmp.i = icmp ult i32 1, 2
  ; CHECK: br i1 %cmp.i, label %exit, label %exit{{$}}
  br i1 %cmp.i, label %exit, label %exit, !llvm.loop !0

exit:
  ret void

```

https://github.com/llvm/llvm-project/pull/136386
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to