We noticed that the register to register moves in x86.ad file attempts to generate emovdqu when UseAVX==2.
The instruction emovdquq is only supported on platforms where UseAVX > 2 (AVX 512).
The following rules in x86.ad file need to be corrected:
MoveVecX2Leg
MoveLeg2VecX
MoveVecY2Leg
MoveLeg2VecY
The above move rules when activated through register allocator and could result in illegal instruction exception.
Also there is similar usage of (UseAVX < 2) in c1_LIRAssembler which could be written as (UseAVX <=2) for better code sequence.