|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
| #
b4a285bc |
| 12-Aug-2022 |
Maciej Gabka <[email protected]> |
[clang][SVE] Undefine preprocessor macro defined in
arm_sve.h defines and uses __ai macro which needs to be undefined (as it is already in arm_neon.h).
Reviewed By: paulwalker-arm
Differential Rev
[clang][SVE] Undefine preprocessor macro defined in
arm_sve.h defines and uses __ai macro which needs to be undefined (as it is already in arm_neon.h).
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D131580
(cherry picked from commit 48e1250a91d244741c8677fed248ace1fcd7c41c)
show more ...
|
|
Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
204aaf87 |
| 13-Apr-2021 |
Sander de Smalen <[email protected]> |
[AArch64][SVE] Always use overloaded methods instead of preprocessor macro.
This fixes a subtle issue where:
svprf(pg, ptr, SV_ALL /*is sv_pattern instead of sv_prfop*/)
would be quietly accepte
[AArch64][SVE] Always use overloaded methods instead of preprocessor macro.
This fixes a subtle issue where:
svprf(pg, ptr, SV_ALL /*is sv_pattern instead of sv_prfop*/)
would be quietly accepted. With this change, the function declaration guards that the third parameter is a `enum sv_prfop`. Previously `svprf` would map directly to `__builtin_sve_svprfb`, which accepts the enum operand as a signed integer and only checks that the incoming range is valid, meaning that SV_ALL would be discarded as being outside the valid immediate range, but would have allowed SV_VL1 without issuing a warning (C) or error (C++).
Reviewed By: c-rhodes
Differential Revision: https://reviews.llvm.org/D100297
show more ...
|
| #
fa936b61 |
| 13-Apr-2021 |
Sander de Smalen <[email protected]> |
[AArch64][SVE] Fix dup/dupq intrinsics for C++.
This patch changes the builtin prototype to use 'b' (boolean) instead of the default integer element type. That fixes the dup/dupq intrinsics when com
[AArch64][SVE] Fix dup/dupq intrinsics for C++.
This patch changes the builtin prototype to use 'b' (boolean) instead of the default integer element type. That fixes the dup/dupq intrinsics when compiling with C++.
This patch also fixes one of the defines for __ARM_FEATURE_SVE2_BITPERM.
Reviewed By: kmclaughlin
Differential Revision: https://reviews.llvm.org/D100294
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
1f2122c9 |
| 18-Feb-2021 |
Joe Ellis <[email protected]> |
[clang][SVE] Use __inline__ instead of inline in arm_sve.h
The inline keyword is not defined in the C89 standard, so source files that include arm_sve.h will fail compilation if -std=c89 is specifie
[clang][SVE] Use __inline__ instead of inline in arm_sve.h
The inline keyword is not defined in the C89 standard, so source files that include arm_sve.h will fail compilation if -std=c89 is specified. For consistency with arm_neon.h, we should use __inline__ instead.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D96852
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
| #
c70f3686 |
| 17-Dec-2020 |
Fangrui Song <[email protected]> |
Use basic_string::find(char) instead of basic_string::find(const char *s, size_type pos=0)
Many (StringRef) cannot be detected by clang-tidy performance-faster-string-find.
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
02bdbdc7 |
| 16-Nov-2020 |
Francesco Petrogalli <[email protected]> |
[clang][SveEmitter] Fix enum declarations. [NFCI]
Adapt the declarations of `svpattern` and `svprfop` to the most recent one defined in section "5. Enum declarations" of the SVE ACLE specifications
[clang][SveEmitter] Fix enum declarations. [NFCI]
Adapt the declarations of `svpattern` and `svprfop` to the most recent one defined in section "5. Enum declarations" of the SVE ACLE specifications [1].
The signature of the intrinsics using these enums have been changed accordingly.
A test has been added to make sure that `svpattern` and `svprfop` are not typedefs.
[1] https://developer.arm.com/documentation/100987/latest, version 00bet6
Reviewed By: joechrisellis
Differential Revision: https://reviews.llvm.org/D91333
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3 |
|
| #
f255656a |
| 02-Jul-2020 |
Sander de Smalen <[email protected]> |
[SVE] ACLE: Fix builtins for svdup_lane_bf16 and svcvtnt_bf16_f32_x
bfloat16 variants of svdup_lane were missing, and svcvtnt_bf16_x was implemented incorrectly (it takes an operand for the inactive
[SVE] ACLE: Fix builtins for svdup_lane_bf16 and svcvtnt_bf16_f32_x
bfloat16 variants of svdup_lane were missing, and svcvtnt_bf16_x was implemented incorrectly (it takes an operand for the inactive lanes)
Reviewers: fpetrogalli, efriedma
Reviewed By: fpetrogalli
Tags: #clang
Differential Revision: https://reviews.llvm.org/D82908
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc2 |
|
| #
ddbdff3a |
| 26-Jun-2020 |
Francesco Petrogalli <[email protected]> |
[sve][acle] Recommit https://reviews.llvm.org/D82501
The original patch was reverted in https://github.com/llvm/llvm-project/commit/ff5ccf258e297df29f32d6b5e4fa0a7b95c44f9c as it was missing the C t
[sve][acle] Recommit https://reviews.llvm.org/D82501
The original patch was reverted in https://github.com/llvm/llvm-project/commit/ff5ccf258e297df29f32d6b5e4fa0a7b95c44f9c as it was missing the C tests that got accidentally missing.
This patch is a NFC of https://reviews.llvm.org/D82501, together with the SVE ACLE tests for the C intrinsics of svreinterpret for brain float types.
show more ...
|
| #
ff5ccf25 |
| 26-Jun-2020 |
Francesco Petrogalli <[email protected]> |
Revert "[sve][acle] Add reinterpret intrinsics for brain float."
This reverts commit a15722c5ce4759c12960fe434ee6bd8aac70bb16.
The commmit has to be reverted because I accidentally submit https://r
Revert "[sve][acle] Add reinterpret intrinsics for brain float."
This reverts commit a15722c5ce4759c12960fe434ee6bd8aac70bb16.
The commmit has to be reverted because I accidentally submit https://reviews.llvm.org/D82501 without the C tests that were added in an early version of the patch.
show more ...
|
| #
a15722c5 |
| 24-Jun-2020 |
Francesco Petrogalli <[email protected]> |
[sve][acle] Add reinterpret intrinsics for brain float.
Reviewers: kmclaughlin, efriedma, ctetreau, sdesmalen, david-arm
Subscribers: tschuett, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
[sve][acle] Add reinterpret intrinsics for brain float.
Reviewers: kmclaughlin, efriedma, ctetreau, sdesmalen, david-arm
Subscribers: tschuett, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D82501
show more ...
|
| #
121e585e |
| 23-Jun-2020 |
Sander de Smalen <[email protected]> |
[AArch64][SVE] ACLE: Add bfloat16 to struct load/stores.
This patch contains: - Support in LLVM CodeGen for bfloat16 types for ld2/3/4 and st2/3/4. - New bfloat16 ACLE builtins for svld(2|3|4)[_vnum
[AArch64][SVE] ACLE: Add bfloat16 to struct load/stores.
This patch contains: - Support in LLVM CodeGen for bfloat16 types for ld2/3/4 and st2/3/4. - New bfloat16 ACLE builtins for svld(2|3|4)[_vnum] and svst(2|3|4)[_vnum]
Reviewers: stuij, efriedma, c-rhodes, fpetrogalli
Reviewed By: fpetrogalli
Tags: #clang, #lldb, #llvm
Differential Revision: https://reviews.llvm.org/D82187
show more ...
|
| #
c8fae2bb |
| 19-Jun-2020 |
Cullen Rhodes <[email protected]> |
[AArch64][SVE] Guard svbfloat16_t with feature macro in ACLE
Summary: svbfloat16_t should only be defined if the __ARM_FEATURE_SVE_BF16 feature macro is enabled, similar to the scalar bfloat16_t typ
[AArch64][SVE] Guard svbfloat16_t with feature macro in ACLE
Summary: svbfloat16_t should only be defined if the __ARM_FEATURE_SVE_BF16 feature macro is enabled, similar to the scalar bfloat16_t type. Also, arm_bf16.h should be included in arm_sve.h when __ARM_FEATURE_BF16_SCALAR_ARITHMETIC is defined.
Patch also contains a fix for ld1ro intrinsic which should be guarded on __ARM_FEATURE_SVE_BF16 rather than __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and a fix for bfmmla test which was missing __ARM_FEATURE_BF16_SCALAR_ARITHMETIC and -target-feature +bf16 in the RUN line.
Reviewed By: fpetrogalli
Differential Revision: https://reviews.llvm.org/D82178
show more ...
|
| #
ef597eda |
| 16-Jun-2020 |
Francesco Petrogalli <[email protected]> |
[sve][acle] Add SVE BFloat16 extensions.
Summary: List of intrinsics:
svfloat32_t svbfdot[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3) svfloat32_t svbfdot[_n_f32](svfloat32_t op1, svb
[sve][acle] Add SVE BFloat16 extensions.
Summary: List of intrinsics:
svfloat32_t svbfdot[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3) svfloat32_t svbfdot[_n_f32](svfloat32_t op1, svbfloat16_t op2, bfloat16_t op3) svfloat32_t svbfdot_lane[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3, uint64_t imm_index)
svfloat32_t svbfmmla[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3)
svfloat32_t svbfmlalb[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3) svfloat32_t svbfmlalb[_n_f32](svfloat32_t op1, svbfloat16_t op2, bfloat16_t op3) svfloat32_t svbfmlalb_lane[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3, uint64_t imm_index)
svfloat32_t svbfmlalt[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3) svfloat32_t svbfmlalt[_n_f32](svfloat32_t op1, svbfloat16_t op2, bfloat16_t op3) svfloat32_t svbfmlalt_lane[_f32](svfloat32_t op1, svbfloat16_t op2, svbfloat16_t op3, uint64_t imm_index)
svbfloat16_t svcvt_bf16[_f32]_m(svbfloat16_t inactive, svbool_t pg, svfloat32_t op) svbfloat16_t svcvt_bf16[_f32]_x(svbool_t pg, svfloat32_t op) svbfloat16_t svcvt_bf16[_f32]_z(svbool_t pg, svfloat32_t op)
svbfloat16_t svcvtnt_bf16[_f32]_m(svbfloat16_t even, svbool_t pg, svfloat32_t op) svbfloat16_t svcvtnt_bf16[_f32]_x(svbfloat16_t even, svbool_t pg, svfloat32_t op)
For reference, see section 7.2 of "Arm C Language Extensions for SVE - Version 00bet4"
Reviewers: sdesmalen, ctetreau, efriedma, david-arm, rengolin
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D82141
show more ...
|
| #
3e59dfc3 |
| 15-Jun-2020 |
Francesco Petrogalli <[email protected]> |
[llvm][SveEmitter] Emit the bfloat version of `svld1ro`.
Summary: The new SVE builtin type __SVBFloat16_t` is used to represent scalable vectors of bfloat elements.
Reviewers: sdesmalen, efriedma,
[llvm][SveEmitter] Emit the bfloat version of `svld1ro`.
Summary: The new SVE builtin type __SVBFloat16_t` is used to represent scalable vectors of bfloat elements.
Reviewers: sdesmalen, efriedma, stuij, ctetreau, shafik, rengolin
Subscribers: tschuett, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D81304
show more ...
|
| #
98100353 |
| 15-Jun-2020 |
Sander de Smalen <[email protected]> |
[SVE] Ensure proper mangling of ACLE tuple types
The AAPCS specifies that the tuple types such as `svint32x2_t` should use their `arm_sve.h` names when mangled instead of their builtin names.
This
[SVE] Ensure proper mangling of ACLE tuple types
The AAPCS specifies that the tuple types such as `svint32x2_t` should use their `arm_sve.h` names when mangled instead of their builtin names.
This patch also renames the internal types for the tuples to be prefixed with `__clang_`, so they are not misinterpreted as specified internal types like the non-tuple types which *are* defined in the AAPCS. Using a builtin type for the tuples is a purely a choice of the Clang implementation.
Reviewers: rsandifo-arm, c-rhodes, efriedma, rengolin
Reviewed By: efriedma
Tags: #clang
Differential Revision: https://reviews.llvm.org/D81721
show more ...
|
| #
91a4a592 |
| 15-Jun-2020 |
Sander de Smalen <[email protected]> |
[SveEmitter] Add SVE tuple types and builtins for svundef.
This patch adds new SVE types to Clang that describe tuples of SVE vectors. For example `svint32x2_t` which maps to the twice-as-wide vecto
[SveEmitter] Add SVE tuple types and builtins for svundef.
This patch adds new SVE types to Clang that describe tuples of SVE vectors. For example `svint32x2_t` which maps to the twice-as-wide vector `<vscale x 8 x i32>`. Similarly, `svint32x3_t` will map to `<vscale x 12 x i32>`.
It also adds builtins to return an `undef` vector for a given SVE type.
Reviewers: c-rhodes, david-arm, ctetreau, efriedma, rengolin
Reviewed By: c-rhodes
Tags: #clang
Differential Revision: https://reviews.llvm.org/D81459
show more ...
|
| #
d6d2f78f |
| 05-Jun-2020 |
Paul Walker <[email protected]> |
[SVE ACLE] Remove redundant bool_t typedef.
Subscribers: tschuett, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D81252
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
b593bfd4 |
| 11-May-2020 |
Francesco Petrogalli <[email protected]> |
[clang][SveEmitter] SVE builtins for `svusdot` and `svsudot` ACLE.
Summary: Intrinsics, guarded by `__ARM_FEATURE_SVE_MATMUL_INT8`:
* svusdot[_s32] * svusdot[_n_s32] * svusdot_lane[_s32] * svsudot[
[clang][SveEmitter] SVE builtins for `svusdot` and `svsudot` ACLE.
Summary: Intrinsics, guarded by `__ARM_FEATURE_SVE_MATMUL_INT8`:
* svusdot[_s32] * svusdot[_n_s32] * svusdot_lane[_s32] * svsudot[_s32] * svsudot[_n_s32] * svsudot_lane[_s32]
Reviewers: sdesmalen, efriedma, david-arm, rengolin
Subscribers: tschuett, kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79877
show more ...
|
| #
e2cc12e4 |
| 06-May-2020 |
Francesco Petrogalli <[email protected]> |
[SveEmitter] Builtins for SVE matrix multiply `mmla`.
Summary: Guarded by __ARM_FEATURE_SVE_MATMUL_INT8:
* svmmla_u32 * svmmla_s32 * svusmmla_s32
Guarded by __ARM_FEATURE_SVE_MATMUL_FP32:
* svmml
[SveEmitter] Builtins for SVE matrix multiply `mmla`.
Summary: Guarded by __ARM_FEATURE_SVE_MATMUL_INT8:
* svmmla_u32 * svmmla_s32 * svusmmla_s32
Guarded by __ARM_FEATURE_SVE_MATMUL_FP32:
* svmmla_f32
Guarded by __ARM_FEATURE_SVE_MATMUL_FP64:
* svmmla_f64
Reviewers: sdesmalen, kmclaughlin, efriedma, rengolin
Subscribers: tschuett, kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79639
show more ...
|
| #
91cb13f9 |
| 05-May-2020 |
Sander de Smalen <[email protected]> |
[SveEmitter] Add builtins for svqadd, svqsub and svdot
This patch adds builtins for saturating add/sub instructions: - svqadd, svqadd_n - svqsub, svqsub_n
and builtins for dot product instructions:
[SveEmitter] Add builtins for svqadd, svqsub and svdot
This patch adds builtins for saturating add/sub instructions: - svqadd, svqadd_n - svqsub, svqsub_n
and builtins for dot product instructions: - svdot, svdot_lane
show more ...
|
| #
3cb8b4c1 |
| 07-May-2020 |
Sander de Smalen <[email protected]> |
[SveEmitter] Add builtins for SVE2 Polynomial arithmetic
This patch adds builtins for: - sveorbt - sveortb - svpmul - svpmullb, svpmullb_pair - svpmullt, svpmullt_pair
The svpmullb and svpmullt bui
[SveEmitter] Add builtins for SVE2 Polynomial arithmetic
This patch adds builtins for: - sveorbt - sveortb - svpmul - svpmullb, svpmullb_pair - svpmullt, svpmullt_pair
The svpmullb and svpmullt builtins are expressed using the svpmullb_pair and svpmullt_pair LLVM IR intrinsics, respectively.
Reviewers: SjoerdMeijer, efriedma, rengolin
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D79480
show more ...
|
| #
5ba32905 |
| 05-May-2020 |
Sander de Smalen <[email protected]> |
[SveEmitter] Add builtins for svreinterpret
The reinterpret builtins are generated separately because they need the cross product of all types, 121 functions in total, which is inconvenient to speci
[SveEmitter] Add builtins for svreinterpret
The reinterpret builtins are generated separately because they need the cross product of all types, 121 functions in total, which is inconvenient to specify in the arm_sve.td file.
Reviewers: SjoerdMeijer, efriedma, ctetreau, rengolin
Reviewed By: efriedma
Tags: #clang
Differential Revision: https://reviews.llvm.org/D78756
show more ...
|
| #
aed6bd6f |
| 05-May-2020 |
Sander de Smalen <[email protected]> |
Reland D78750: [SveEmitter] Add builtins for svdupq and svdupq_lane
Edit: Changed a few CHECK lines into CHECK-DAG lines.
This reverts commit 90f3f62cb087782fe2608e95d686c29067281b6e.
|
| #
90f3f62c |
| 04-May-2020 |
Sander de Smalen <[email protected]> |
Revert "[SveEmitter] Add builtins for svdupq and svdupq_lane"
It seems this patch broke some buildbots, so reverting until I have had a chance to investigate.
This reverts commit 6b90a6887d25e3375b
Revert "[SveEmitter] Add builtins for svdupq and svdupq_lane"
It seems this patch broke some buildbots, so reverting until I have had a chance to investigate.
This reverts commit 6b90a6887d25e3375bb916a3ed09f7ccec819d0c.
show more ...
|
| #
6b90a688 |
| 04-May-2020 |
Sander de Smalen <[email protected]> |
[SveEmitter] Add builtins for svdupq and svdupq_lane
* svdupq builtins that duplicate scalars to every quadword of a vector are defined using builtins for svld1rq (load and replicate quadword). *
[SveEmitter] Add builtins for svdupq and svdupq_lane
* svdupq builtins that duplicate scalars to every quadword of a vector are defined using builtins for svld1rq (load and replicate quadword). * svdupq builtins that duplicate boolean values to fill a predicate vector are defined using `svcmpne`.
Reviewers: SjoerdMeijer, efriedma, ctetreau
Reviewed By: efriedma
Tags: #clang
Differential Revision: https://reviews.llvm.org/D78750
show more ...
|