================ @@ -1,67 +0,0 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py ---------------- banach-space wrote:
Automation would be very welcome! Before looking at implementation options, I'd like to outline what we want these tests to cover: * **Goal:** verify that each ACLE intrinsic lowers to the expected LLVM IR intrinsic or operation sequence, with the correct operands. * **Non-goal:** test unrelated functionality, such as generic function lowering, that is covered elsewhere. For example, the `svrecpe_u32_*` variants lower to `@llvm.aarch64.sve.urecpe`, together with the predicate conversion through `@llvm.aarch64.sve.convert.from.svbool`. Those operations and their data flow are what we'd like the checks to capture. We also try to share LLVM IR checks between the CIR and traditional CodeGen pipelines wherever practical, rather than duplicating them for each `RUN` line. I think extending `utils/update_cc_test_checks.py` is worth exploring. There are a few differences to account for: * Minor output differences, such as whether the entry block has an `entry` label, are irrelevant to intrinsic lowering and ideally shouldn't require separate checks. * LLVM IR generated through CIR often needs cleanup before we check it. We currently use `opt` passes such as `mem2reg`, `sroa`, and `instcombine` for this. * Some Neon intrinsics are implemented through helper function calls that traditional CodeGen eliminates but the CIR pipeline currently preserves. I'm not sure whether this also affects SVE. I see two complementary directions: 1. Extend the check-generation script to support the relevant `RUN` lines and generate focused checks that can be shared where appropriate. 2. Investigate whether CIR passes such as `mem2reg` and `simplify-cfg` could simplify the generated IR earlier in the pipeline. The second direction could benefit more than these tests, so it's worth exploring alongside the scripting work. I haven't tracked the current status of those passes; GitHub issues and the ClangIR incubator would be my starting points. It would also help establish which differences could be removed in the compiler and which the script should accommodate. For an initial experiment, this test seems like a useful starting point: _Can we regenerate its shared LLVM IR checks and its CIR checks while keeping them focused on intrinsic lowering?_ What do you think, @iamvickynguyen? Hopefully I haven’t scared you off 👻 :) Thanks for offering to look into this 🙂 Best, -Andrzej https://github.com/llvm/llvm-project/pull/236314 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
