================
@@ -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

Reply via email to