Skip to content

[llvm] Change fp128 lowering to use f128 functions by default - #76558

Draft
tgross35 wants to merge 1 commit into
llvm:mainfrom
tgross35:f128-math-lowering
Draft

[llvm] Change fp128 lowering to use f128 functions by default#76558
tgross35 wants to merge 1 commit into
llvm:mainfrom
tgross35:f128-math-lowering

Conversation

@tgross35

@tgross35 tgross35 commented Dec 29, 2023

Copy link
Copy Markdown
Contributor

LLVM currently emits calls to *l (long double) libm symbols for fp128 intrinsics. This works on platforms where long double and _Float128 are the same type, but is incorrect on many platforms.

Change RuntimeLibcalls such that *f128 libcalls are used by default, which is always safe and correct but may not be available. On platforms where long double is f128, the current lowering to *l symbols is kept since they are more available.

The logic for whether f128 is long double is based on the platforms in Clang that set LongDoubleFormat to llvm::APFloat::IEEEquad.

Fixes: #44744
Discourse discussion: https://discourse.llvm.org/t/fp128-math-functions-strange-results/72708
Initial patchset: https://reviews.llvm.org/D157836

Includes PRs:

@github-actions

Copy link
Copy Markdown

Thank you for submitting a Pull Request (PR) to the LLVM Project!

This PR will be automatically labeled and the relevant teams will be
notified.

If you wish to, you can add reviewers by using the "Reviewers" section on this page.

If this is not working for you, it is probably because you do not have write
permissions for the repository. In which case you can instead tag reviewers by
name in a comment by using @ followed by their GitHub username.

If you have received no comments on your PR for a week, you can request a review
by "ping"ing the PR by adding a comment “Ping”. The common courtesy "ping" rate
is once a week. Please remember that you are asking for valuable time from other developers.

If you have further questions, they may be answered by the LLVM GitHub User Guide.

You can also ask questions in a comment on this PR, on the LLVM Discord or on the forums.

@tgross35

Copy link
Copy Markdown
Contributor Author

@efriedma-quic was looking at this on phabricator

@tgross35
tgross35 force-pushed the f128-math-lowering branch 7 times, most recently from 16f30b5 to f6b6ca7 Compare December 30, 2023 01:39
@github-actions

github-actions Bot commented Dec 30, 2023

Copy link
Copy Markdown

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff origin/main HEAD --extensions cpp,h -- clang/lib/CodeGen/CodeGenModule.cpp llvm/include/llvm/ADT/APFloat.h llvm/include/llvm/CodeGen/TargetLowering.h llvm/include/llvm/TargetParser/Triple.h llvm/lib/Support/APFloat.cpp llvm/lib/TargetParser/Triple.cpp --diff_from_common_commit

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from clang-format here.
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index a7c6bc583..2167148c0 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -429,7 +429,8 @@ static void checkDataLayoutConsistency(const TargetInfo &Target,
     llvm::reportFatalInternalError(Twine("For target ") + Triple.str() +
                                    "LLVM wants to use `long double` symbols for"
                                    "_Float128 libm call lowering, but clang"
-                                   "specifies `long double` as " + SemName);
+                                   "specifies `long double` as " +
+                                   SemName);
   }
 
   if (Target.vectorsAreElementAligned() != DL.vectorsAreElementAligned()) {
diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
index d8e7b751d..5bc3dac3d 100644
--- a/llvm/lib/TargetParser/Triple.cpp
+++ b/llvm/lib/TargetParser/Triple.cpp
@@ -2759,12 +2759,14 @@ bool Triple::lowerF128LibmAsLongDouble() const {
   // Note that the logic should be kept in sync with Clang's LongDoubleFormat,
   // though defaulting to *f128 is always safe if available.
 
-  if (Print) fprintf(stderr, "CHECK 1\n");
+  if (Print)
+    fprintf(stderr, "CHECK 1\n");
   // Windows and Apple always use f64 as `long double`.
   if (isOSWindows() || isOSDarwin())
     return false;
 
-  if (Print) fprintf(stderr, "CHECK 2\n");
+  if (Print)
+    fprintf(stderr, "CHECK 2\n");
   // Android and Ohos use binary128 only on x86-64.
   if (isAndroid() || isOHOSFamily()) {
     if (isX86_64())
@@ -2772,7 +2774,8 @@ bool Triple::lowerF128LibmAsLongDouble() const {
     return false;
   }
 
-  if (Print) fprintf(stderr, "CHECK 3\n");
+  if (Print)
+    fprintf(stderr, "CHECK 3\n");
   // PowerPC `long double` is roughly:
   // - f64 on musl
   // - ibm128 most of the time, historically
@@ -2782,21 +2785,24 @@ bool Triple::lowerF128LibmAsLongDouble() const {
   if (isPPC())
     return false;
 
-  if (Print) fprintf(stderr, "CHECK 4\n");
+  if (Print)
+    fprintf(stderr, "CHECK 4\n");
   // Most 64-bit architectures use use binary128, a few are binary128 on both
   // 64- and 32-bit.
   if (isAArch64() || isLoongArch() || isRISCV() || isSPARC64() || isSystemZ() ||
       isVE() || isWasm())
     return true;
 
-  if (Print) fprintf(stderr, "CHECK 5\n");
+  if (Print)
+    fprintf(stderr, "CHECK 5\n");
   // MIPS64 is usually f128, except on FreeBSD-like operating systems. MIPS32
   // is f128 only with the N32 ABI (O32 is `f64`).
   if ((isMIPS64() || isABIN32()) &&
       !(isOSFreeBSD() || isOSKFreeBSD() || isOSDragonFly()))
     return true;
 
-  if (Print) fprintf(stderr, "CHECK 6\n");
+  if (Print)
+    fprintf(stderr, "CHECK 6\n");
   // By default, make the safe assumption that `long double !== f128`. This
   // also catches x86 (`long double` is x87 `f80`)
   return false;

@efriedma-quic

Copy link
Copy Markdown
Contributor

This is basically the approach I was expecting: we check the type of "long double" when we build the TargetLowering, and pick appropriate names based on that.

I expect that for -mlong-double-128, you just want to add a module flag that overrides the default choice.

I think I'd prefer to keep the clang type information computation independent from the backend's type information, even if it overlaps. We try to layer the clang frontend so it isn't directly tied to LLVM IR outside of CodeGen.

My first thought was that the computation of the defaults should be in the backend, not Triple.h, since nothing else needs it at the moment. But I guess it could be useful outside the backend, so maybe that's fine. (At the moment, all the relevant optimizations just check the type of the call itself, but I can imagine certain optimizations could benefit from being able to compute the type without an existing signature to consult.)

@tgross35
tgross35 force-pushed the f128-math-lowering branch 5 times, most recently from c00254c to 67033b2 Compare January 13, 2024 09:57
@tgross35
tgross35 force-pushed the f128-math-lowering branch 4 times, most recently from 2208d1c to 76e30ed Compare January 20, 2024 12:36
@tgross35

Copy link
Copy Markdown
Contributor Author

I'm struggling a bit with how to handle ABI information since that affects layout (e.g. ARM aapcs), which I think explains most of the errors in https://buildkite.com/llvm-project/github-pull-requests/builds/31198#018d26e2-fd17-4e15-a1eb-08580c189056. This needs to be available at TargetLoweringBase::InitLibcalls, which calls getCLayouts.

TargetMachine is available at that time, so would it be better to move CLayouts from Triple to TargetMachine? If so subclasses could be used rather than the if block, which more closely follows the Clang side.

Also, are there currently any module flags that make it to TargetLowering? Looking for a reference on how get the -mlong-double-128 information.

@efriedma-quic

Copy link
Copy Markdown
Contributor

Putting a function in TargetMachine seems reasonable.

@efriedma-quic

Copy link
Copy Markdown
Contributor

For the question about querying module flags, we do that in a few different places in codegen; grep for "getModuleFlag". Not sure if there's anything specifically in TargetLowering.

@tgross35
tgross35 force-pushed the f128-math-lowering branch 2 times, most recently from 8add5ca to 04e87bd Compare February 27, 2025 09:11
@tgross35

Copy link
Copy Markdown
Contributor Author

Finally getting around to this after more than a year. @efriedma-quic as an alternative to the current implementation of duplicating long double layout information from Clang to LLVM, would it work if LLVM lowers to *f128 calls but provides a module flag fp128_use_long_double_libcalls to prefer the *l versions? So if Clang or other frontends know that their long double is _Float128, it can select those libcalls.

The advantage is avoided code duplication and the logic is easier to follow. Also this avoids problems if linking a library built with an unexpected -mlong-double- configuration.

The disadvantage is that frontends that don't know about C's long double can't benefit from the more common *l symbols. I don't think this is too big of a problem though: it makes no difference with glibc (the f128 aliases have been around sufficiently long) or on any platforms where long double is not _Float128. And it is easy enough for frontends to set fp128_use_long_double_libcalls on a case-by-case basis if they know what math library is being used (e.g. aarch64 musl).

(I handle the f128 support for Rust and would much rather never think about *l symbols, I can alias them to *f128 if needed or set the flag)

@tgross35

tgross35 commented Mar 1, 2025

Copy link
Copy Markdown
Contributor Author

In either case, I need to have the module flags available pretty early and I'm not sure how to do that. Ideally they would be available when TargetLowering is constructed or sometime before it is used for lowering, but it only gets a TargetMachine as a paremeter. All values in TargetOptions seem to be configured once and don't pay attention to module flags or take the module as a parameter - is there a reason for that? I'm wondering if TargetMachine is intended to be unchanging across different modules.

Comment thread llvm/test/CodeGen/Generic/f128-math-lowering.ll Outdated
Comment thread llvm/lib/TargetParser/Triple.cpp Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would formulate this in terms of Triple::getDefaultLongDoubleWidth() and add a consistency check in

static void checkDataLayoutConsistency(const TargetInfo &Target,
to ensure it agrees with clang.

@llvmbot llvmbot added backend:Hexagon clang Clang issues not falling into any other category clang:codegen IR generation bugs: mangling, exceptions, etc. labels Jul 14, 2025
@tgross35
tgross35 force-pushed the f128-math-lowering branch from 2599996 to b4c947b Compare July 15, 2025 02:25
Comment thread llvm/lib/IR/RuntimeLibcalls.cpp Outdated
}

/// Set all libm libcalls for _Float128 to `long double` (`*l`) symbols.
static void setLongDoubleIsF128Libm(RuntimeLibcallsInfo &Info,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I need to get rid of this function and instead make these functions DefaultRuntimeLibcallImpls based on the f128LibmShouldUseLongDouble in RuntimeLibcalls.td, which should fix the z/OS intrinsics tests (since those get overridden earlier than this is called, in the .td). I could use some tablegen help figuring out the best way to do something like:

multiclass LibmLibcallImpls<string libcall_basename = !toupper(NAME),
                            string rtbasename = !strconcat(NAME, "X")> {
  // f32, f64 ...

  if ("TT.f128LibmShouldUseLongDouble()` /* evaluated as code rather than a string */) then {
      def NAME#"_ld128"
          : RuntimeLibcallImpl<!cast<RuntimeLibcall>(libcall_basename#"_F128"),
                               !subst("X", "l", rtbasename)>;
  } else {    
      def NAME#"_f128"
          : RuntimeLibcallImpl<!cast<RuntimeLibcall>(libcall_basename#"_F128"),
                               !subst("X", "f128", rtbasename)>;
  }
}

So each libcall gets the right defaults without manually enumerating a list.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I think I can do this later by building a set based on names that end with _ld128. Hm...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hold off on this, you're jumping in the middle of my partially merged stack. #148575 removes this

Comment thread clang/lib/CodeGen/CodeGenModule.cpp Outdated
Comment on lines +403 to +407
llvm::errs() << "For target `" << Triple.str()
<< "` LLVM wants to use `long double` symbols for `_Float128` "
"libm call lowering, but clang specifies `long double` as `"
<< SemName << "`\n";
abort();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is reinventing reportFatalInternalError. But can we just fix the clang field to be set from the triple in the first place?

Comment thread llvm/lib/IR/RuntimeLibcalls.cpp Outdated
}

/// Set all libm libcalls for _Float128 to `long double` (`*l`) symbols.
static void setLongDoubleIsF128Libm(RuntimeLibcallsInfo &Info,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hold off on this, you're jumping in the middle of my partially merged stack. #148575 removes this

/// or an invalid version tuple if this triple doesn't have one.
LLVM_ABI VersionTuple getMinimumSupportedOSVersion() const;

/// Return true if `_Float128` libcalls should lower to e.g. `sqrtf` (`long

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sqrtl, no?

@tgross35
tgross35 marked this pull request as draft July 2, 2026 11:57
@tgross35
tgross35 force-pushed the f128-math-lowering branch 4 times, most recently from b250d30 to dae1b69 Compare July 2, 2026 12:42
LLVM currently emits calls to `*l` (`long double`) libm symbols for
`fp128` intrinsics. This works on platforms where `long double` and
`_Float128` are the same type, but is incorrect on many platforms.

Change RuntimeLibcalls such that `*f128` libcalls are used by default,
which is always safe and correct but may not be available. On platforms
where it is likely that `sqrtf128` and similar are not available, keep
the current behavior of lowering to `*l` symbols if `long double` is
`binary128`.

The logic for whether f128 is `long double` is based on the platforms in
Clang that set `LongDoubleFormat` to `llvm::APFloat::IEEEquad`.

Fixes llvm#44744
@tgross35
tgross35 force-pushed the f128-math-lowering branch from dae1b69 to 9af4baa Compare July 2, 2026 12:52
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

⚠️ LLVM ABI annotation checker, ids-check found issues in your code. ⚠️

You can test this locally with the following command:
Build idt from compnerd/ids, then for each changed header:
    idt -p build/ --main-file <matching-source.cpp> \
        --apply-fixits --inplace <header>
View the diff from ids-check here.
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 8beaa4287..0df8cb3e7 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -1295,7 +1295,7 @@ public:
 
   /// Return true if `_Float128` libcalls should lower to e.g. `sqrtf` (`long
   /// double`) rather than the default `sqrtf128`.
-  bool lowerF128LibmAsLongDouble() const;
+  LLVM_ABI bool lowerF128LibmAsLongDouble() const;
 
   /// @}
   /// @name Static helpers for IDs.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

🪟 Windows x64 Test Results

  • 62392 tests passed
  • 1876 tests skipped
  • 5 tests failed

Failed Tests

(click on a test name to see its output)

Clang

Clang.Analysis/Scalable/cli-errors-compilation-unit-id.cpp
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 12
rm -rf C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp && mkdir -p C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp
# executed command: rm -rf 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# executed command: mkdir -p 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# RUN: at line 13
not c:\_work\llvm-project\llvm-project\build\bin\clang.exe     -c C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o --ssaf-extract-summaries=CallGraph --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp --match-full-lines --check-prefix=MISSING
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -c 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o' --ssaf-extract-summaries=CallGraph '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --match-full-lines --check-prefix=MISSING
# note: command had no output on stdout or stderr
# RUN: at line 14
not c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc    C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp              --ssaf-extract-summaries=CallGraph --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp --match-full-lines --check-prefix=MISSING
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --ssaf-extract-summaries=CallGraph '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --match-full-lines --check-prefix=MISSING
# note: command had no output on stdout or stderr
# RUN: at line 16
not test -e C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json
# executed command: not test -e 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-absent.json'
# note: command had no output on stdout or stderr
# RUN: at line 22
rm -rf C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp && mkdir -p C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp
# executed command: rm -rf 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# executed command: mkdir -p 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# RUN: at line 23
not c:\_work\llvm-project\llvm-project\build\bin\clang.exe     -c C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o --ssaf-extract-summaries=CallGraph --ssaf-compilation-unit-id= --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp --match-full-lines --check-prefix=MISSING
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -c 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o' --ssaf-extract-summaries=CallGraph --ssaf-compilation-unit-id= '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --match-full-lines --check-prefix=MISSING
# note: command had no output on stdout or stderr
# RUN: at line 24
not c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc    C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp              --ssaf-extract-summaries=CallGraph --ssaf-compilation-unit-id= --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp --match-full-lines --check-prefix=MISSING
# executed command: not 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --ssaf-extract-summaries=CallGraph --ssaf-compilation-unit-id= '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --match-full-lines --check-prefix=MISSING
# note: command had no output on stdout or stderr
# RUN: at line 25
not test -e C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json
# executed command: not test -e 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-empty.json'
# note: command had no output on stdout or stderr
# RUN: at line 32
rm -rf C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp && mkdir -p C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp
# executed command: rm -rf 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# executed command: mkdir -p 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# RUN: at line 33
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -c C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o -Wno-error=scalable-static-analysis-framework --ssaf-extract-summaries=CallGraph --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-warn.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp --match-full-lines --check-prefix=WARNING
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -c 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o' -Wno-error=scalable-static-analysis-framework --ssaf-extract-summaries=CallGraph '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-warn.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' --match-full-lines --check-prefix=WARNING
# note: command had no output on stdout or stderr
# RUN: at line 35
test -e C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o
# executed command: test -e 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o'
# note: command had no output on stdout or stderr
# RUN: at line 36
not test -e C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-warn.json
# executed command: not test -e 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-warn.json'
# note: command had no output on stdout or stderr
# RUN: at line 39
rm -rf C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp && mkdir -p C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp
# executed command: rm -rf 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# executed command: mkdir -p 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp'
# note: command had no output on stdout or stderr
# RUN: at line 40
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -c C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp -o C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o -Wno-scalable-static-analysis-framework --ssaf-extract-summaries=CallGraph --ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-silent.json 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\count.exe 0
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -c 'C:\_work\llvm-project\llvm-project\clang\test\Analysis\Scalable\cli-errors-compilation-unit-id.cpp' -o 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/test.o' -Wno-scalable-static-analysis-framework --ssaf-extract-summaries=CallGraph '--ssaf-tu-summary-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Analysis\Scalable\Output\cli-errors-compilation-unit-id.cpp.tmp/tu-silent.json'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\count.exe' 0
# .---command stderr------------
# | Expected 0 lines, got 1.
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.CodeGen/AArch64/fixed-register-global.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -c --target=aarch64-none-gnu -ffixed-x15 C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AArch64\fixed-register-global.c -o /dev/null 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\count.exe 0
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -c --target=aarch64-none-gnu -ffixed-x15 'C:\_work\llvm-project\llvm-project\clang\test\CodeGen\AArch64\fixed-register-global.c' -o /dev/null
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\count.exe' 0
# .---command stderr------------
# | Expected 0 lines, got 4.
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Driver/as-warnings.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c --target=x86_64-pc-linux-gnu -c -Wa,--fatal-warnings 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c --check-prefix=FATAL_WARNINGS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' --target=x86_64-pc-linux-gnu -c -Wa,--fatal-warnings
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' --check-prefix=FATAL_WARNINGS
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c -c -o tmp.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,--no-warn 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=CHECK-NOIAS C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' -c -o tmp.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,--no-warn
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=CHECK-NOIAS 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c'
# note: command had no output on stdout or stderr
# RUN: at line 6
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c -c -o tmp.o --target=x86_64-pc-linux-gnu -integrated-as -Wa,--no-warn 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' -c -o tmp.o --target=x86_64-pc-linux-gnu -integrated-as -Wa,--no-warn
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c'
# note: command had no output on stdout or stderr
# RUN: at line 9
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c -c -o tmp.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,-W 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=CHECK-NOIASW C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' -c -o tmp.o -target i686-pc-linux-gnu -fno-integrated-as -Wa,-W
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=CHECK-NOIASW 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c'
# note: command had no output on stdout or stderr
# RUN: at line 10
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -### --target=x86_64-pc-linux-gnu C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c -c -o tmp.o -integrated-as -Wa,-W 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' '-###' --target=x86_64-pc-linux-gnu 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' -c -o tmp.o -integrated-as -Wa,-W
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c'
# note: command had no output on stdout or stderr
# RUN: at line 13
c:\_work\llvm-project\llvm-project\build\bin\clang.exe --target=x86_64 C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c -c -o /dev/null -fintegrated-as -Wa,--no-warn 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\count.exe 0
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' --target=x86_64 'C:\_work\llvm-project\llvm-project\clang\test\Driver\as-warnings.c' -c -o /dev/null -fintegrated-as -Wa,--no-warn
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\count.exe' 0
# .---command stderr------------
# | Expected 0 lines, got 6.
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Driver/cl-showfilenames.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 13
mkdir -p C:\_work\llvm-project\llvm-project\build\tools\clang\test\Driver\Output\cl-showfilenames.c.tmp.dir
# executed command: mkdir -p 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Driver\Output\cl-showfilenames.c.tmp.dir'
# note: command had no output on stdout or stderr
# RUN: at line 14
c:\_work\llvm-project\llvm-project\build\bin\clang.exe --driver-mode=cl -fno-integrated-cc1 --target=i686-pc-win32 /c /FoC:\_work\llvm-project\llvm-project\build\tools\clang\test\Driver\Output\cl-showfilenames.c.tmp.dir/ /showFilenames -- C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefix=show C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' --driver-mode=cl -fno-integrated-cc1 --target=i686-pc-win32 /c '/FoC:\_work\llvm-project\llvm-project\build\tools\clang\test\Driver\Output\cl-showfilenames.c.tmp.dir/' /showFilenames -- 'C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefix=show 'C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c:24:15: error: show-NEXT: is not on the line after the previous match
# | // show-NEXT: warning: Hello
# |               ^
# | <stdin>:3:80: note: 'next' match was here
# | C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c(21,9): warning: Hello [-W#pragma-messages]
# |                                                                                ^
# | <stdin>:1:19: note: previous match ended here
# | cl-showfilenames.c
# |                   ^
# | <stdin>:2:1: note: non-matching line after previous match is here
# | CHECK 1
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: cl-showfilenames.c 
# | next:24'0                      {   search range start (exclusive)
# |            2: CHECK 1 
# |            3: C:\_work\llvm-project\llvm-project\clang\test\Driver\cl-showfilenames.c(21,9): warning: Hello [-W#pragma-messages] 
# | next:24'1                                                                                    !~~~~~~~~~~~~~                        error: match on wrong line
# |            4:  21 | #pragma message "Hello" 
# |            5:  | ^ 
# |            6: 1 warning generated. 
# | next:24'2                          } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

Clang.Misc/time-passes.c
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null 2>&1 |      c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=TIME,NPM
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=TIME,NPM
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null      -mllvm -info-output-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null -mllvm '-info-output-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp'
# .---command stderr------------
# | CHECK 1
# `-----------------------------
# RUN: at line 8
cat C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=TIME,NPM
# executed command: cat 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=TIME,NPM
# note: command had no output on stdout or stderr
# RUN: at line 9
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report=per-pass C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null 2>&1 |      c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=TIME,NPM
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report=per-pass 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=TIME,NPM
# note: command had no output on stdout or stderr
# RUN: at line 12
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report=per-pass-run C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null 2>&1 |      c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=TIME,NPM-PER-INVOKE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report=per-pass-run 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=TIME,NPM-PER-INVOKE
# note: command had no output on stdout or stderr
# RUN: at line 15
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report-json C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null 2>&1 |      c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=JSON
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report-json 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=JSON
# note: command had no output on stdout or stderr
# RUN: at line 18
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      -ftime-report-json C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null      -mllvm -info-output-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 -ftime-report-json 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null -mllvm '-info-output-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp'
# .---command stderr------------
# | CHECK 1
# `-----------------------------
# RUN: at line 21
cat C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c --check-prefixes=JSON
# executed command: cat 'C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' --check-prefixes=JSON
# note: command had no output on stdout or stderr
# RUN: at line 24
c:\_work\llvm-project\llvm-project\build\bin\clang.exe -cc1 -internal-isystem C:\_work\llvm-project\llvm-project\build\lib\clang\23\include -nostdsysteminc -emit-obj -O1      C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c -o /dev/null      -stats-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp -stats-file-timers 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\count.exe 0
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\clang.exe' -cc1 -internal-isystem 'C:\_work\llvm-project\llvm-project\build\lib\clang\23\include' -nostdsysteminc -emit-obj -O1 'C:\_work\llvm-project\llvm-project\clang\test\Misc\time-passes.c' -o /dev/null '-stats-file=C:\_work\llvm-project\llvm-project\build\tools\clang\test\Misc\Output\time-passes.c.tmp' -stats-file-timers
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\count.exe' 0
# .---command stderr------------
# | Expected 0 lines, got 1.
# `-----------------------------
# error: command failed with exit status: 1

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

🐧 Linux x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
sccache /opt/llvm/bin/clang++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/Support -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/../third-party/siphash/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/../libc -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Werror=global-constructors -O3 -DNDEBUG -std=c++17 -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -Wno-c99-extensions -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/APFloat.cpp
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/APFloat.cpp:247:3: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switch-default]
247 |   default:
|   ^
1 error generated.

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AArch64 backend:ARM backend:Hexagon backend:MIPS backend:PowerPC backend:SystemZ backend:WebAssembly backend:X86 clang:codegen IR generation bugs: mangling, exceptions, etc. clang Clang issues not falling into any other category llvm:adt llvm:analysis Includes value tracking, cost tables and constant folding llvm:ir llvm:SelectionDAG SelectionDAGISel as well llvm:support

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid lowering of llvm.*.f128 intrinsics

8 participants