[PATCH] D32281: [ARM] ACLE Chapter 9 intrinsics
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 20 11:54:10 PDT 2017
efriedma added a comment.
I'm not convinced you're handling the Q and GE flags correctly for all of the intrinsics which set/use them. If we allow users to access those flags, every instruction which might set them needs to be mapped to a SelectionDAG node with a chain, every instruction which sets or uses them needs to be marked hasSideEffects, and we can never turn arithmetic into an operation which sets Q or GE. I'm not convinced you've managed that correctly everywhere. We currently have an ARMISD::SSAT node which doesn't have a chain. We have a pattern which generates SMLABB from an ISD::MUL. And it's difficult to review the rest because you're adding them all at once.
================
Comment at: include/llvm/IR/IntrinsicsARM.td:87
+def int_arm_sel : GCCBuiltin<"__builtin_arm_sel">,
+ Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], []>;
+
----------------
IntrReadMem?
================
Comment at: lib/Target/ARM/ARMInstrInfo.td:877
+ return Imm > 0 && Imm <= 16;
+ }],
imm1_16_XFORM> {
----------------
ImmLeaf?
https://reviews.llvm.org/D32281
More information about the llvm-commits
mailing list