[clang] [HLSL][Matrix] Make matrix single element accessor return a scalar instead of vector (PR #182609)
Deric C. via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 20 15:02:33 PST 2026
================
@@ -6,31 +6,27 @@ typedef float float3x3 __attribute__((matrix_type(3,3)));
void ok() {
float3x3 A;
- // CHECK: BinaryOperator {{.*}} 'vector<float, 1>' lvalue '='
- // CHECK-NEXT: MatrixElementExpr {{.*}} 'vector<float, 1>' lvalue _m12
+ // CHECK: BinaryOperator {{.*}} 'float' lvalue '='
+ // CHECK-NEXT: MatrixElementExpr {{.*}} 'float' lvalue _m12
// CHECK-NEXT: DeclRefExpr {{.*}} 'float3x3':'matrix<float, 3, 3>' lvalue Var {{.*}} 'A' 'float3x3':'matrix<float, 3, 3>'
- // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector<float, 1>' <VectorSplat>
// CHECK-NEXT: FloatingLiteral {{.*}} 'float' 3.140000e+00
A._m12 = 3.14;
// CHECK: VarDecl {{.*}} r 'float' cinit
- // CHECK-NEXT: ImplicitCastExpr {{.*}} 'float' <HLSLVectorTruncation>
- // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector<float, 1>' <LValueToRValue>
- // CHECK-NEXT: MatrixElementExpr {{.*}} 'vector<float, 1>' lvalue _m00
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'float' <LValueToRValue>
----------------
Icohedron wrote:
The implicit cast is for LValue-to-RValue conversion, so I think it's still necessary
https://github.com/llvm/llvm-project/pull/182609
More information about the cfe-commits
mailing list