[clang] [llvm] [HLSL] Implementation of dot intrinsic (PR #81190)

David Peixotto via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 13 08:41:57 PST 2024


================
@@ -0,0 +1,202 @@
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   -emit-llvm -disable-llvm-passes -O3 -o - | FileCheck %s
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
+// RUN:   dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes \
+// RUN:   -D__HLSL_ENABLE_16_BIT -o - | FileCheck %s --check-prefix=NO_HALF
----------------
dmpots wrote:

I am having a hard time seeing the difference between the `CHECK` and `NO_HALF` checks below. It looks like a lot of them are the same.


>From the command line it looks like the difference is the `-fnative-half-type` flag which means that only the `half` tests should be different. I think in this case it is better to organize the check lines in a way that highlights those differences.

I would suggest using 3 check prefixes like `CHECK`, `NATIVE_HALF`, `NO_HALF`. The CHECK prefix will be common to both run lines and the two half ones will depend on the native-half-type flag.

```
RUN: clang ... -fnative-half-type ... | FileCheck %s -check-prefixes=CHECK,NATIVE_HALF
RUN: clang ...                    ... | FileCheck %s -check-prefixes=CHECK,NO_HALF
```

That way you only need to use the NATIVE_HALF and NO_HALF check prefixes when there should be actual differences between them.

https://github.com/llvm/llvm-project/pull/81190


More information about the cfe-commits mailing list