Adds intrinsics for the following:
- cmphs, cmphi
- cmpge, cmpgt
- cmpeq, cmpne
- cmplt, cmple
- cmplo, cmpls
Includes a minor change to TLI.getMemValueType that fixes a crash due to the
scalable flag being dropped.
Paths
| Differential D70889
[AArch64][SVE] Implement integer compare intrinsics ClosedPublic Authored by c-rhodes on Dec 2 2019, 3:05 AM.
Details Summary Adds intrinsics for the following:
Includes a minor change to TLI.getMemValueType that fixes a crash due to the
Diff Detail Event Timelinec-rhodes added a child revision: D71009: [AArch64][SVE] Add wide compare immediate patterns.Dec 4 2019, 5:44 AM Comment Actions
Good spot, so for the signed and unsigned immediate variants (defined with sve_int_scmp_vi, sve_int_ucmp_vi) there are IR tests in sve-intrinsics-int-compares-with-imm.ll but it seems I missed a separate test we have downstream covering the non-immediate forms (defined with sve_int_cmp_0). I tried pulling that test in but it looks like it's failing for a number of reasons I don't entirely understand just yet. I think for this patch I'll remove the IR patterns for the non-immediate forms and in the meantime see what's required there for a follow-up patch. This revision is now accepted and ready to land.Dec 5 2019, 9:29 AM Closed by commit rGbb8c679f4bf2: [AArch64][SVE] Implement integer compare intrinsics (authored by c-rhodes). · Explain WhyDec 6 2019, 3:16 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 232356 llvm/include/llvm/CodeGen/TargetLowering.h
llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares-with-imm.ll
llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares.ll
|