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

Reply via email to