https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95528
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2020-06-04 Ever confirmed|0 |1 --- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- Something is wrong with the handling of: (define_expand "vec_pack_trunc_<mode>" [(set (match_operand:<DOUBLEMASKMODE> 0 "register_operand") (ior:<DOUBLEMASKMODE> (ashift:<DOUBLEMASKMODE> (zero_extend:<DOUBLEMASKMODE> (match_operand:SWI24 2 "register_operand")) (match_dup 3)) (zero_extend:<DOUBLEMASKMODE> (match_operand:SWI24 1 "register_operand"))))] "TARGET_AVX512BW" { operands[3] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode)); }) Disabling this expander "fixes" the testcase. "-O2 -mavx512bw" is needed.