On 03/07/18 12:02, Richard Biener wrote:
I believe that the AVX variants like(define_expand "maskstore<mode><avx512fmaskmodelower>" [(set (match_operand:V48_AVX512VL 0 "memory_operand") (vec_merge:V48_AVX512VL (match_operand:V48_AVX512VL 1 "register_operand") (match_dup 0) (match_operand:<avx512fmaskmode> 2 "register_operand")))] "TARGET_AVX512F") are OK since they represent a use of the memory due to the match_dup 0 while your UNSPEC one doesn't so as the store doesn't actually take place to all of 0 your insn variant doesn't represent observable behavior.
Hmm, so they're safe, but may prevent the optimization of nearby variables? What about the unspec AVX variant? Andrew
