Add pattern matching for the following SVE logical vector and immediate instructions:
- and/bic, orr/orn, eor/eon.
Paths
| Differential D71483
[AArch64][SVE] Add patterns for logical immediate operations. ClosedPublic Authored by dancgr on Dec 13 2019, 10:58 AM.
Details Summary Add pattern matching for the following SVE logical vector and immediate instructions:
Diff Detail
Event Timeline
dancgr added inline comments.
dancgr added inline comments.
This revision is now accepted and ready to land.Dec 13 2019, 1:03 PM Comment Actions Thanks @dancgr, LGTM! There is no harm in adding these intrinsics, but it is worth pointing out that our downstream compiler does not have explicit intrinsics for the immediate forms because:
Comment Actions I will be merging this patch then, and I will submit a short patch for the AArch64dup (SVELogicalImm32 i64:$imm) patterns and the equivalent ones for the add/sub instructions. Closed by commit rGf933878991a9: [AArch64][SVE] Add patterns for logical immediate operations. (authored by dancgr). · Explain WhyDec 16 2019, 1:21 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 234129 llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/sve-int-log-imm.ll
|
I don't really like anyint here... can we restrict the type somehow?
Actually, I'm not sure how this even works with your testcases; how is LLVM computing the type of llvm.aarch64.sve.orr.imm.nxv16i8? You aren't specifying the type of the integer.