https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64342
--- Comment #6 from vries at gcc dot gnu.org --- avx512f-kandnw-1.c fails with -fpic, because there's no kandnw instruction in the .s file. In postreload, it's still there: ... (insn 17 40 39 2 (parallel [ (set (reg:HI 0 ax [105]) (and:HI (not:HI (reg:HI 0 ax [105])) (reg:HI 2 cx [orig:103 k2 ] [103]))) (clobber (reg:CC 17 flags)) ]) build/gcc/include/avx512fintrin.h:9995 386 {kandnhi} (nil)) ... Immediately afterwards, in split2, it disappears: ... Splitting with gen_split_5282 scanning new insn with uid = 42. scanning new insn with uid = 43. deleting insn with uid = 17. ... This is due to this split in i386.md (introduced in r202491): ... (define_split [(set (match_operand:SWI12 0 "general_reg_operand") (and:SWI12 (not:SWI12 (match_dup 0)) (match_operand:SWI12 1 "general_reg_operand"))) (clobber (reg:CC FLAGS_REG))] "TARGET_AVX512F && !TARGET_BMI && reload_completed" [(set (match_dup 0) (not:HI (match_dup 0))) (parallel [(set (match_dup 0) (and:HI (match_dup 0) (match_dup 1))) (clobber (reg:CC FLAGS_REG))])]) ...