sdesmalen updated this revision to Diff 535645. sdesmalen retitled this revision from "[POC] Clang implementation for AArch64 SME and some SME2 builtins" to "[POC] Clang implementation for AArch64 SME and SME2 builtins". sdesmalen edited the summary of this revision. sdesmalen added a comment. Herald added a subscriber: MaskRay.
Rebased patch to a more recent commit. Updated patch to support SME2 intrinsics. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137556/new/ https://reviews.llvm.org/D137556 Files: clang/include/clang/AST/Type.h clang/include/clang/AST/TypeProperties.td clang/include/clang/Basic/Attr.td clang/include/clang/Basic/AttrDocs.td clang/include/clang/Basic/Builtins.def clang/include/clang/Basic/BuiltinsAArch64.def clang/include/clang/Basic/BuiltinsSME.def clang/include/clang/Basic/BuiltinsSVE.def clang/include/clang/Basic/CMakeLists.txt clang/include/clang/Basic/DiagnosticSemaKinds.td clang/include/clang/Basic/TargetBuiltins.h clang/include/clang/Basic/arm_sme.td clang/include/clang/Basic/arm_sve.td clang/include/clang/Basic/arm_sve_common.td clang/include/clang/Sema/Sema.h clang/lib/AST/ASTContext.cpp clang/lib/AST/Type.cpp clang/lib/AST/TypePrinter.cpp clang/lib/Basic/Targets/AArch64.cpp clang/lib/Basic/Targets/AArch64.h clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGCall.cpp clang/lib/CodeGen/CodeGenFunction.h clang/lib/CodeGen/CodeGenModule.cpp clang/lib/Driver/ToolChains/Arch/AArch64.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Sema/Sema.cpp clang/lib/Sema/SemaChecking.cpp clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaDeclAttr.cpp clang/lib/Sema/SemaDeclCXX.cpp clang/lib/Sema/SemaExpr.cpp clang/lib/Sema/SemaOverload.cpp clang/lib/Sema/SemaType.cpp clang/test/AST/ast-dump-sme-attributes.cpp clang/test/CodeGen/aarch64-sme-intrinsics/aarch64-sme-attrs.cpp clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_cnt.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_loads.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mem_ops.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mop.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_reads.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_state_funs.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_stores.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_writes.c clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_zero.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_add.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_loads.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_mop.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_reads.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_stores.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_writes.c clang/test/CodeGen/aarch64-sme-intrinsics/negative/acle_sme_zero.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_create2_bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_create4_bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvtn.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fp_dots.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_frint.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_get2-bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_get4-bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_int_dots.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_ldr_str_zt.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x2.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x4.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x2.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x4.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mla.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlal.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlall.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mls.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlsl.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mop.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_read.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_reinterpret_svcount_svbool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_rshl.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_set2-bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_set4-bool.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sqdmulh.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sub.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vdot.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_write.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_zero_zt.c clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sve_add.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4.c clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_revd.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmlsl.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_cntp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_dot.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ldnt1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pext.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pfalse.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_psel.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ptrue.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_qrshr.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_sclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_selx2.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_selx4.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_st1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_stnt1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_unpkx2.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_unpkx4.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uzpx2.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uzpx4.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_pn.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_pp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_zipx2.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_zipx4.c clang/test/Misc/pragma-attribute-supported-attributes-list.test clang/test/Preprocessor/aarch64-target-features.c clang/test/Sema/aarch64-incompat-sm-builtin-calls.c clang/test/Sema/aarch64-incompat-za-builtin-calls.c clang/test/Sema/aarch64-sme-attrs-no-sme.c clang/test/Sema/aarch64-sme-attrs-on-x86.c clang/test/Sema/aarch64-sme-func-attrs.c clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_imm.cpp clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_imm.cpp clang/utils/TableGen/NeonEmitter.cpp clang/utils/TableGen/SveEmitter.cpp clang/utils/TableGen/TableGen.cpp clang/utils/TableGen/TableGenBackends.h llvm/include/llvm/IR/IRBuilder.h llvm/include/llvm/IR/Intrinsics.h llvm/include/llvm/IR/Intrinsics.td llvm/include/llvm/IR/IntrinsicsAArch64.td llvm/lib/IR/Function.cpp llvm/lib/Target/AArch64/AArch64.h llvm/lib/Target/AArch64/AArch64.td llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp llvm/lib/Target/AArch64/AArch64FastISel.cpp llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp llvm/lib/Target/AArch64/AArch64ISelLowering.cpp llvm/lib/Target/AArch64/AArch64ISelLowering.h llvm/lib/Target/AArch64/AArch64InstrFormats.td llvm/lib/Target/AArch64/AArch64InstrInfo.cpp llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td llvm/lib/Target/AArch64/AArch64TargetMachine.cpp llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp llvm/lib/Target/AArch64/CMakeLists.txt llvm/lib/Target/AArch64/SMEABIPass.cpp llvm/lib/Target/AArch64/SMEInstrFormats.td llvm/lib/Target/AArch64/SMEPeepholeOpt.cpp llvm/lib/Target/AArch64/SVEInstrFormats.td llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.cpp llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.h llvm/test/CodeGen/AArch64/O3-pipeline.ll llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll llvm/test/CodeGen/AArch64/sme-exceptions-with-streaming-mode-llc.ll llvm/test/CodeGen/AArch64/sme-exceptions-with-streaming-mode.ll llvm/test/CodeGen/AArch64/sme-exceptions-with-za-state-llc.ll llvm/test/CodeGen/AArch64/sme-exceptions-with-za-state.ll llvm/test/CodeGen/AArch64/sme-intrinsics-get-live-za-slices.ll llvm/test/CodeGen/AArch64/sme-intrinsics-loads.ll llvm/test/CodeGen/AArch64/sme-intrinsics-stores.ll llvm/test/CodeGen/AArch64/sme-invoke-resume-pstatesm.ll llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll llvm/test/CodeGen/AArch64/sme-peephole-opts.ll llvm/test/CodeGen/AArch64/sme-peephole-opts.mir llvm/test/CodeGen/AArch64/sme-read-write-tpidr2.ll llvm/test/CodeGen/AArch64/sme-shared-za-abi.ll llvm/test/CodeGen/AArch64/sme-shared-za-interface.ll llvm/test/CodeGen/AArch64/sme-streaming-body.ll llvm/test/CodeGen/AArch64/sme-streaming-interface.ll llvm/test/CodeGen/AArch64/sme-streaming-locally-interface.ll llvm/test/CodeGen/AArch64/sme-streaming.ll llvm/test/CodeGen/AArch64/sme-tailcall.ll llvm/test/CodeGen/AArch64/sme-toggle-pstateza.ll llvm/test/CodeGen/AArch64/sme-zt0-preserve.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-extract-mova.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti2-lane-x2.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti2-lane-x4.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti2-lane.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti4-lane-x2.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti4-lane-x4.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-luti4-lane.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-zero-zt.ll llvm/test/CodeGen/AArch64/sme2-intrinsics-zt0.ll llvm/test/CodeGen/AArch64/sme2p1-intrinsics-max.ll llvm/test/CodeGen/AArch64/sme2p1-intrinsics-min.ll llvm/test/CodeGen/AArch64/streaming-mode-no-reorder.ll llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll llvm/test/CodeGen/AArch64/sve2-intrinsics-psel.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul_lane.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-cntp.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-fclamp.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-loads.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-predicate-as-counter.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-qrshr.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-sclamp.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx2.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-stores.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uclamp.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpx2.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-uzpx4.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-while-pn.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-while-pp.ll llvm/test/CodeGen/AArch64/sve2p1-intrinsics-zipx2.ll llvm/test/CodeGen/AArch64/variant-pcs.ll llvm/test/MC/AArch64/SVE2p1/feature-sve2p1-implies-bf16.s llvm/test/Transforms/Inline/AArch64/sme-streaming-attr.ll llvm/test/Transforms/Inline/AArch64/sme-za-attr.ll _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits