[PATCH] D20897: [AVX512/AVX][Intrinsics] Fix Variable Bit Shift Right Arithmetic intrinsic lowering.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 13 04:11:23 PDT 2016
RKSimon added a comment.
> No, I belive it is correctness issue. vpsrav intrinsic lowering with constant out-of-range shift value is incorrect.
Thanks for the example - the issue you describe seems to be that the x86 variable shift intrinsics are being mapped to ISD::SRA - I think this is the problem you are encountering?
Comment at: lib/Target/X86/X86IntrinsicsInfo.h:326
@@ -326,1 +325,3 @@
+ X86_INTRINSIC_DATA(avx2_psrav_d, INTR_SRA, ISD::SRA, 0),
+ X86_INTRINSIC_DATA(avx2_psrav_d_256, INTR_SRA, ISD::SRA, 0),
X86_INTRINSIC_DATA(avx2_psrl_d, INTR_TYPE_2OP, X86ISD::VSRL, 0),
These variable shift intrinsics should NOT use the ISD::SRA opcode but need a X86ISD::VSRAV opcode instead - similarly for the logical left/right intrinsics.
More information about the llvm-commits