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))])])
...