[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

Chris B via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed May 28 07:07:12 PDT 2025


================
@@ -711,6 +734,35 @@ std::optional<Register> RootSignatureParser::parseRegister() {
   return Reg;
 }
 
+std::optional<float> RootSignatureParser::parseFloatParam() {
+  assert(CurToken.TokKind == TokenKind::pu_equal &&
+         "Expects to only be invoked starting at given keyword");
+  // Consume sign modifier
+  bool Signed =
+      tryConsumeExpectedToken({TokenKind::pu_plus, TokenKind::pu_minus});
+  bool Negated = Signed && CurToken.TokKind == TokenKind::pu_minus;
+
+  // DXC will treat a postive signed integer as unsigned
+  if (!Negated && tryConsumeExpectedToken(TokenKind::int_literal)) {
+    auto UInt = handleUIntLiteral();
+    if (!UInt.has_value())
+      return std::nullopt;
+    return (float)UInt.value();
+  } else if (tryConsumeExpectedToken(TokenKind::int_literal)) {
----------------
llvm-beanz wrote:

Flyby style nit: Don't use `else` after a `return`

https://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return

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


More information about the llvm-branch-commits mailing list