[llvm-dev] How to migrate x86_sse2_psrl_dq after LLVM v3.8?

Leslie Zhai via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 25 20:36:02 PDT 2017


Hi Craig,

Thanks for your kind response!


在 2017年07月25日 22:30, Craig Topper 写道:
> We should still parse IR containing that intrinsic and turn into 
> something equivalent. You can see what that looks like by running it 
> through the opt binary without running any passes.
I am migrating dragonegg https://reviews.llvm.org/D35667 I will test it 
without running any PASS.


>
> If you're trying to generate IR and you used to generate that 
> intrinsic, you'll need to generate an equivalent shufflevector 
> instruction. You can find code for that in AutoUpgrade.cpp
I just grep sse2.psrl.dq in lib/IR/AutoUpgrade.cpp, there is 
UpgradeX86PSRLDQIntrinsics for x86.sse2.psrl.dq, and emit a shuffle to 
move the bytes if (Shift < 16), else just return the zero vector 
Constant::getNullValue 
https://github.com/llvm-mirror/llvm/blob/master/lib/IR/AutoUpgrade.cpp#L639

so could I migrate dragonegg for the if (ShiftVal < 32) condition like 
this? 
https://github.com/xiangzhai/dragonegg/blob/gcc-6_3-branch/src/x86/Target.cpp#L904


>
> On Tue, Jul 25, 2017 at 1:30 AM Leslie Zhai <lesliezhai at llvm.org.cn 
> <mailto:lesliezhai at llvm.org.cn>> wrote:
>
>     Hi LLVM developers,
>
>     After Remove int_x86_sse2_psll_dq_bs and int_x86_sse2_psrl_dq_bs
>     intrinsics. The builtins aren't used by clang.
>     https://reviews.llvm.org/rL229069 there was no
>     Intrinsic::x86_sse2_psrl_dq any more, then how to migrate:
>
>
>     Function *F =
>                  Intrinsic::getDeclaration(TheModule,
>     Intrinsic::x86_sse2_psrl_dq);
>              Result =
>                  Builder.CreateCall(F, ArrayRef<Value *>(&Ops[0], 2),
>     "palignr");
>
>
>     And clang v3.9 migrated X86::BI__builtin_ia32_palignr128 like this
>     https://github.com/llvm-mirror/clang/blob/master/lib/CodeGen/CGBuiltin.cpp#L7629
>     just ignored the if (shiftVal < 32) condition?
>     https://github.com/llvm-mirror/clang/blob/release_33/lib/CodeGen/CGBuiltin.cpp#L2642
>
>     Please give me some hint, thanks a lot!
>
>     --
>     Regards,
>     Leslie Zhai - a LLVM developer https://reviews.llvm.org/p/xiangzhai/
>
> -- 
> ~Craig

-- 
Regards,
Leslie Zhai - a LLVM developer https://reviews.llvm.org/p/xiangzhai/



More information about the llvm-dev mailing list