Page MenuHomePhabricator

[POC] Clang implementation for AArch64 SME and some SME2 builtins
Changes PlannedPublic

Authored by sdesmalen on Nov 7 2022, 7:58 AM.

Details

Reviewers
aaron.ballman
Summary

THIS IS A PROOF OF CONCEPT, PLEASE DO NOT REVIEW

We're sharing this patch for people who want to try out the full C/C++ ->
asm flow for the SME (and some of the SME2) intrinsics. The patch can be
applied to b50392342be27efdc01d877ba0c357485dc7e918.

Some parts are being upstreamed independently from this proof of concept.

Some changes in this patch may have already diverged from the patches that
are in flight on Phabricator (this is mostly true for the SME2 assembler).

Diff Detail

Unit TestsFailed

TimeTest
420 msx64 debian > Clang.CodeGen/aarch64-sme-intrinsics::acle_sme_add.c
Script: -- : 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/16.0.0/include -nostdsysteminc -D__ARM_FEATURE_SME=1 -D__ARM_FEATURE_SME_I64I64=1 -triple aarch64-none-linux-gnu -target-feature +sme -S -O1 -Werror -emit-llvm -o - /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add.c | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add.c
490 msx64 debian > Clang.CodeGen/aarch64-sme-intrinsics::acle_sme_loads.c
Script: -- : 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/16.0.0/include -nostdsysteminc -D__ARM_FEATURE_SME=1 -triple aarch64-none-linux-gnu -target-feature +sme -S -O1 -Werror -emit-llvm -o - /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_loads.c | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_loads.c
500 msx64 debian > Clang.CodeGen/aarch64-sme-intrinsics::acle_sme_mop.c
Script: -- : 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/16.0.0/include -nostdsysteminc -D__ARM_FEATURE_SME=1 -D__ARM_FEATURE_SME_I64I64=1 -D__ARM_FEATURE_SME_F64F64=1 -S -O1 -emit-llvm -triple aarch64-none-linux-gnu -target-feature +sme -Werror -o - /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mop.c | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mop.c
580 msx64 debian > Clang.CodeGen/aarch64-sme-intrinsics::acle_sme_reads.c
Script: -- : 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/16.0.0/include -nostdsysteminc -D__ARM_FEATURE_SME=1 -triple aarch64-none-linux-gnu -target-feature +sme -S -O1 -Werror -emit-llvm -o - /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_reads.c | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_reads.c
500 msx64 debian > Clang.CodeGen/aarch64-sme-intrinsics::acle_sme_stores.c
Script: -- : 'RUN: at line 3'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -cc1 -internal-isystem /var/lib/buildkite-agent/builds/llvm-project/build/lib/clang/16.0.0/include -nostdsysteminc -D__ARM_FEATURE_SME=1 -triple aarch64-none-linux-gnu -target-feature +sme -S -O1 -Werror -emit-llvm -o - /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_stores.c | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_stores.c
View Full Test Results (6 Failed)

Event Timeline

sdesmalen created this revision.Nov 7 2022, 7:58 AM
Herald added a project: Restricted Project. · View Herald Transcript
sdesmalen requested review of this revision.Nov 7 2022, 7:58 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptNov 7 2022, 7:58 AM
sdesmalen planned changes to this revision.Nov 7 2022, 7:58 AM