microsoft / microsoft/DirectXShaderCompiler

QuadReadAcross(bool) Fails to Compile

Open
#6,633 5 comments 0 reactions 1 assignee View on GitHub

@llvm-beanz is already working on this.

Since May 20, 2024.

bug needs-triage
Dominant language
C++
Stars
3.7k
Forks
900
Avg merge
2d 11h
Merged PRs (30d)
44

Description

Description
QuadReadAcross(bool) fails to compile with many strange error messages. However, ReadWaveLaneAt(bool, lane) successfully compiles. This looks like a compiler bug because the capabilities of QuadReadAcross and ReadWaveLaneAt should be similar.

Steps to Reproduce
https://godbolt.org/z/8qqdTq45T

Actual Behavior

TranslationUnitDecl 0x5cf7cd6ef0a0 <<invalid sloc>> <invalid sloc>
`-FunctionDecl 0x5cf7cd72ba48 <<source>:1:1, line:3:1> line:1:13 fn 'bool (bool)'
  |-ParmVarDecl 0x5cf7cd72b950 <col:17, col:22> col:22 used B 'bool'
  |-CompoundStmt 0x5cf7cd734818 <col:25, line:3:1>
  | `-ReturnStmt 0x5cf7cd734800 <line:2:3, col:27>
  |   `-ImplicitCastExpr 0x5cf7cd72bed8 <col:10, col:27> 'bool' <FloatingToBoolean>
  |     `-CallExpr 0x5cf7cd72be60 <col:10, col:27> 'float'
  |       |-ImplicitCastExpr 0x5cf7cd72be48 <col:10> 'float (*)(float)' <FunctionToPointerDecay>
  |       | `-DeclRefExpr 0x5cf7cd72bde0 <col:10> 'float (float)' lvalue Function 0x5cf7cd72bc50 'QuadReadAcrossX' 'float (float)'
  |       `-ImplicitCastExpr 0x5cf7cd72bec0 <col:26> 'float' <IntegralToFloating>
  |         `-ImplicitCastExpr 0x5cf7cd72bea8 <col:26> 'bool' <LValueToRValue>
  |           `-DeclRefExpr 0x5cf7cd72bbe8 <col:26> 'bool' lvalue ParmVar 0x5cf7cd72b950 'B' 'bool'
  `-HLSLExportAttr 0x5cf7cd72bb08 <line:1:1>

Environment

  • DXC version libdxcompiler.so: 1.8(dev;1-11e1318c) and dxcompiler.dll: 1.7 - 1.7.2212.12 (8c9d92be7); dxil.dll: 1.7(1.01.7.2212.14)
  • Host Operating System Linux and Windows 10 Enterprise 22H2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.