================
@@ -40,12 +38,32 @@ auto three_way_strong(int x, int y) {
// AFTER: %{{.+}} = cir.load %{{.+}} :
!cir.ptr<!rec_std3A3A__13A3Astrong_ordering>,
!rec_std3A3A__13A3Astrong_ordering{{.*}}
----------------
adams381 wrote:
There were two run lines sharing the `AFTER` prefix before this patch: the one
checking the fully-compiled `.cir` (line 3) and the one piping
`-mlir-print-ir-after=cir-lowering-prepare` (line 5). I renamed the first to
`FINAL` because the two now diverge once `CallConvLowering` actually runs.
That's the whole point of this file. The second run line still uses
`--check-prefix=AFTER,BOTH` untouched, and it's still what these lines match
against.
Post-`LoweringPrepare`, the function still returns the raw `!rec_...ordering`
struct since `CallConvLowering` hasn't run yet at that point in the pipeline,
so the load-and-return in the `AFTER` block is accurate there. Renaming it to
`FINAL` would actually be wrong: the fully-lowered output no longer has a bare
`cir.return %{{.+}} : !rec_...ordering`. It's coerced to `!s8i` through the
store/bitcast/reload sequence in the `FINAL` block right below it.
I ran all five RUN lines directly against the build binaries to confirm:
`BEFORE,BOTH`, `FINAL`, `AFTER,BOTH`, `LLVM`, and `OGCG` all pass, including
the exact lines you flagged.
https://github.com/llvm/llvm-project/pull/218293
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits