https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110751
--- Comment #24 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- Heh, nice hack. :) But I guess this shows that the type checking of internal functions isn't as strong it should be. IMO it's wrong to pass a scalar else value to a vector operation. Even if it happens to work now, it's likely to fail in the future. E.g. I think match.pd fold rules should be entitled to assume (without checking) that all data operands to a COND_* function have compatible types. If we want an undefined operand value, I think we'll need add to add one that specifically has that meaning.