https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70894

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This specific builtin was removed in GCC 12 by r12-2848.

But here is a testcase which still ICEs on the trunk:
typedef __simd64_int8_t int8x8_t;

int8x8_t
g (signed char __a, int8x8_t __b, const int __c)
{
  return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b,
__c);
}

The problem is obvious the char (QImode) argument gets prompoted to int
(SImode) and copy_to_mode_reg is used without the change of the mode back down
to QImode.

Reply via email to