On 9/23/26 9:39 AM, Robin Dapp wrote:
Hi,

Right now we only show an error if the expansion of a builtin fails.
But there is builtin code that get optimized away before expansion and
never shows an error message.  It's not strictly wrong code but at least
surprising and will mislead compilation checks.

This patch just copies the checks of expand_builtin to
check_builtin_call.  We don't have the exact same expression of the
affected call available at that point, though.  The basic fndecl just
contains the function name and not its arguments.  We can reconstruct
the call but in my tests there were always slight difference to the
expand-time diagnostic.  Therefore I adjusted the test expectations
instead.  Quite a few, unfortunately...

Regtested on rv64gcv_zvl512b.

Regards
  Robin

        PR target/127553

gcc/ChangeLog:

        * config/riscv/riscv-vector-builtins.cc 
(validate_instance_type_required_extensions):
        Add location param for logging.
        (expand_builtin): Pass location.
        (check_builtin_call): Likewise.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/base/bug-9.c: Adjust test expectation.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-1.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-10.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-2.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-3.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-4.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-5.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-6.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-7.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-8.c: Ditto.
        * gcc.target/riscv/rvv/base/intrinsic_required_ext-9.c: Ditto.
        * gcc.target/riscv/rvv/base/pr114988-1.c: Ditto.
        * gcc.target/riscv/rvv/base/pr114988-2.c: Ditto.
        * gcc.target/riscv/rvv/base/pr120436.c: Ditto.
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-17.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-18.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-19.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-20.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-21.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-22.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-23.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-24.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-25.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-26.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-27.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-28.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-29.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-3.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-7.c:
        * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-8.c:
        * gcc.target/riscv/pr127553.c: New test.
LGTM.
jeff

Reply via email to