[PATCH] D67159: [clang] New __attribute__((__clang_builtin)).

2019-09-05 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. Come to think of it, it would also not be too hard to constrain it to //only// be usable for a particular subset of builtins, and perhaps even only with a particular set of alias names for them. (I could easily derive all that information from the same Tablegen tha

[PATCH] D72268: [ARM,MVE] Support -ve offsets in gather-load intrinsics.

2020-01-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: dmgreen, miyuki, MarkMurrayARM. Herald added subscribers: llvm-commits, cfe-commits, kristof.beyls. Herald added projects: clang, LLVM. The ACLE intrinsics with `gather_base` or `scatter_base` in the name are wrappers on the MVE loa

[PATCH] D72271: [Clang] Handle target-specific builtins returning aggregates.

2020-01-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: dmgreen, rjmccall. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. A few of the ARM MVE builtins directly return a structure type. This causes an assertion failure at code-gen time if you try to

[PATCH] D72270: [ARM,MVE] Fix many signedness errors in MVE intrinsics.

2020-01-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham marked an inline comment as done. simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve.td:204 let params = T.Float in { - defm vminnmq : VectorVectorArithmetic<"min_predicated">; - defm vmaxnmq : VectorVectorArithmetic<"max_predicated"

[PATCH] D72268: [ARM,MVE] Support -ve offsets in gather-load intrinsics.

2020-01-06 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4978296cd8e4: [ARM,MVE] Support -ve offsets in gather-load intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72268/new/

[PATCH] D72271: [Clang] Handle target-specific builtins returning aggregates.

2020-01-07 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 236564. simon_tatham added a comment. Thanks for the helpful advice! Here's a revised version that checks `getEvaluationKind`. I've also added a test for the `vld2q(...).val[0]` construction you mentioned: you're right, of course, that that also crashe

[PATCH] D72271: [Clang] Handle target-specific builtins returning aggregates.

2020-01-08 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 236778. simon_tatham marked an inline comment as done. simon_tatham edited the summary of this revision. simon_tatham added a comment. Restructured as suggested. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D72271: [Clang] Handle target-specific builtins returning aggregates.

2020-01-09 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 236994. simon_tatham marked 2 inline comments as done. simon_tatham added a comment. Moved the `llvm_unreachable`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72271/new/ https://reviews.llvm.org/D72271

[PATCH] D72444: [ARM,MVE] Fix valid immediate range for vsliq_n.

2020-01-09 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: dmgreen, MarkMurrayARM, miyuki, ostannard. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. In common with most MVE immediate shift instructions, the left shift takes an immediate in the range [0,

[PATCH] D72444: [ARM,MVE] Fix valid immediate range for vsliq_n.

2020-01-09 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham closed this revision. simon_tatham marked an inline comment as done. simon_tatham added a comment. Closed by rGd857e114b5e04f5143485a5aea7ad9b283768692 . (I managed to leave off the commit message footer, sorry.)

[PATCH] D72271: [Clang] Handle target-specific builtins returning aggregates.

2020-01-09 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG06d07ec4a372: [Clang] Handle target-specific builtins returning aggregates. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72271/n

[PATCH] D72496: [ARM,MVE] Make `vqrshrun` generate the right instruction.

2020-01-10 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: dmgreen, MarkMurrayARM, miyuki, ostannard. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. A copy-paste error in `arm_mve.td` meant that the MVE `vqrshrun` intrinsic family was generating the `vq

[PATCH] D72496: [ARM,MVE] Make `vqrshrun` generate the right instruction.

2020-01-10 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG1ccee0e86386: [ARM,MVE] Make `vqrshrun` generate the right instruction. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72496/new/

[PATCH] D72518: [clang] New __attribute__((__clang_arm_mve_strict_polymorphism)).

2020-01-10 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: aaron.ballman, dmgreen. Herald added subscribers: cfe-commits, JDevlieghere, kristof.beyls. Herald added a project: clang. This is applied to the vector types defined in for use with the intrinsics for the ARM MVE vector architectu

[PATCH] D72690: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements.

2020-01-14 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, miyuki. Herald added subscribers: llvm-commits, cfe-commits, dmgreen, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. This cleans up a lot of ugly `foreach` bodges that I've been using to work around th

[PATCH] D72690: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements.

2020-01-14 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG71d5454b3772: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72690/ne

[PATCH] D72518: [clang] New __attribute__((__clang_arm_mve_strict_polymorphism)).

2020-01-14 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 237999. simon_tatham marked 7 inline comments as done. simon_tatham added a comment. - Renamed the attribute as suggested. - Made it target-specific. - Added a diagnostic when it's applied to anything other than a vector type with a vector kind of `NeonV

[PATCH] D72518: [clang] New __attribute__((arm_mve_strict_polymorphism)).

2020-01-14 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/include/clang/Basic/Attr.td:1474 +def ArmMveStrictPolymorphism : TypeAttr { + let Spellings = [Clang<"__clang_arm_mve_strict_polymorphism">]; + let Documentation = [ArmMveStrictPolymorphismDocs]; aaron.ballm

[PATCH] D72761: [ARM][MVE][Intrinsics] Add VMINAQ, VMINNMAQ, VMAXAQ, VMAXNMAQ intrinsics.

2020-01-15 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve.td:289 + def vmaxaq: Intrinsic $a, $b)>; } I wonder if we should implement at least the simple case (integer and unpredicated) using standard IR nodes instead of an IR intrinsic?

[PATCH] D72518: [clang] New __attribute__((arm_mve_strict_polymorphism)).

2020-01-15 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGada01d1b8697: [clang] New __attribute__((__clang_arm_mve_strict_polymorphism)). (authored by simon_tatham). Changed prior to commit: https://reviews.llvm.org/D72518?vs=237999&id=238253#toc Repository:

[PATCH] D72761: [ARM][MVE][Intrinsics] Add VMINAQ, VMINNMAQ, VMAXAQ, VMAXNMAQ intrinsics.

2020-01-15 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. This revision is now accepted and ready to land. LGTM this time. Thanks for the rewrite! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72761/new/ https://reviews.llvm.org/D72761

[PATCH] D102238: [TableGen] [Clang] Clean up arm_mve.td file

2021-05-12 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve.td:1532 // // So this foldl expression implements what you'd write in Python as // [srctype for srctype in T.All if srctype != desttype] If you've removed my unreadable `fo

[PATCH] D104442: [libclang] Fix error handler in translateSourceLocation.

2021-06-17 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: akyrtzi, rsmith. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Given an invalid SourceLocation, translateSourceLocation will call clang_getNullLocation, and th

[PATCH] D97204: [RFC] Clang 64-bit source locations

2021-06-18 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. Thanks to @miyuki for repeating the previous benchmark with this version of the patch (and on the same machine as before, which was better than I could have done). The revised results now have the memory usage increase (compared to 32-bit SourceLocation) in the re

[PATCH] D104442: [libclang] Fix error handler in translateSourceLocation.

2021-06-18 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGfd569a11b585: [libclang] Fix error handler in translateSourceLocation. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104442/new/

[PATCH] D97204: [RFC] Clang 64-bit source locations

2021-06-24 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. Hmmm. Two people have pointed out to me that my strategy of having a 32-bit `SourceLocations::LowBits` and an 0- or 32-bit `SourceLocations::OptionalHighBits` doesn't actually work, because an empty struct still takes at least 1 byte. So this version of the patch w

[PATCH] D105490: Remove unused parameter from parseMSInlineAsm.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added a subscriber: hiraditya. simon_tatham requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-commits, cfe-commits. No implementation uses the `

[PATCH] D105491: [clang] Use i64 for the !srcloc metadata on asm IR nodes.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added subscribers: dexonsmith, hiraditya. simon_tatham requested review of this revision. Herald added projects: clang, LLVM. Herald added subscribers: llvm-commits, cfe-commits. This is part of a

[PATCH] D105492: [clang] Introduce SourceLocation::[U]IntType typedefs.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added subscribers: dexonsmith, arphaman, kbarton, nemanjai. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a

[PATCH] D105494: [clang] Introduce a union inside ProgramPoint.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series working towards the ability to make SourceLocation in

[PATCH] D105493: [clang] Change set type used for SourceLocation.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added a subscriber: dexonsmith. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series working toward

[PATCH] D105495: [clang] Make negative getLocWithOffset widening-safe.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added subscribers: dexonsmith, martong. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series workin

[PATCH] D105497: [clang] Serialize source locations as 64-bit in PCH.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series working towards the ability to make SourceLocation in

[PATCH] D105498: [clang] Remove assumption about SourceLocation alignment.

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series working towards the ability to make SourceLocation in

[PATCH] D97204: [RFC] Clang 64-bit source locations

2021-07-06 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. This patch doesn't seem to have attracted much review attention in the last couple of weeks. On the theory that perhaps it's just too big and monolithic to review in one go, I've started to break it up into smaller pieces. So far I've only covered the preparation s

[PATCH] D105490: Remove unused parameter from parseMSInlineAsm.

2021-07-12 Thread Simon Tatham via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGe49985bb6065: Remove unused parameter from parseMSInlineAsm. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST A

[PATCH] D115014: [clang] RFC: NFC: simplify macro tokens assignment

2021-12-03 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. I don't think so, I'm afraid. If you look at the definition of `MacroInfo::tokens_begin()` in `clang/include/clang/Lex/MacroInfo.h`, you see that it doesn't return a raw `Token *`: it returns a C++ iterator object. using tokens_iterator = SmallVectorImpl::const_i

[PATCH] D115014: [clang] RFC: NFC: simplify macro tokens assignment

2021-12-03 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. Ah, now I see what you mean – I didn't look far enough! I don't know this code well (in fact I'm not sure why you picked me as a reviewer), but off the top of my head: the question is not just whether `tokens_iterator` happens to be the same thing as `const Token *

[PATCH] D142703: [ARM] Allow selecting hard-float ABI in integer-only MVE.

2023-01-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham retitled this revision from "[ARM] Allow selecting the hard float ABI in integer-only MVE." to "[ARM] Allow selecting hard-float ABI in integer-only MVE.". simon_tatham edited the summary of this revision. simon_tatham updated this revision to Diff 492722. simon_tatham added a commen

[PATCH] D142703: [ARM] Allow selecting hard-float ABI in integer-only MVE.

2023-02-01 Thread Simon Tatham via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG60ea6f35a270: [ARM] Allow selecting hard-float ABI in integer-only MVE. (authored by simon_tatham). Changed prior to commit: https://reviews.llvm.

[PATCH] D140959: RFC: Multilib prototype

2023-01-17 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. "Make difficult things possible": perhaps it might be useful to make sure it's at least //possible// to express a complex boolean function of the basic predicates, even if it's cumbersome? (So that, for example, you could make an attribute conditional on "this cc1

[PATCH] D127197: [ARM] Fix how size-0 bitfields affect homogeneous aggregates.

2022-06-07 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: asl, rsmith, lenary, john.brawn. Herald added a subscriber: kristof.beyls. Herald added a project: All. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. By both A

[PATCH] D127197: [ARM] Fix how size-0 bitfields affect homogeneous aggregates.

2022-06-07 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 434838. simon_tatham added a comment. Added tests with `extern "C"`, at @lenary's (offline) suggestion. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127197/new/ https://reviews.llvm.org/D127197 Files:

[PATCH] D127197: [ARM] Fix how size-0 bitfields affect homogeneous aggregates.

2022-06-10 Thread Simon Tatham via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGceb21fa4e49d: [ARM] Fix how size-0 bitfields affect homogeneous aggregates. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANG

[PATCH] D158614: [UBSan] Disable the function sanitizer on an execute-only target.

2023-08-23 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. I think this is also true of `-fsanitize=kcfi`, isn't it? That also works by writing a cookie just before the function entry point. If we're diagnosing incompatibilities with execute-only, then perhaps we should do it for both. Repository: rG LLVM Github Monorep

[PATCH] D158614: [UBSan] Disable the function sanitizer on an execute-only target.

2023-08-23 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/lib/Basic/Sanitizers.cpp:134-143 + if ((A && + A->getOption().matches(clang::driver::options::OPT_mexecute_only)) || + (std::find(Features.begin(), Features.end(), "+execute-only") != + Features.end())) { +

[PATCH] D158688: [Driver,ARM,AArch64] Ignore -mbranch-protection= diagnostics for assembler input

2023-08-29 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. This revision is now accepted and ready to land. The change LGTM, and "agree with gcc" seems like a reasonable justification in this case. But I'm curious more generally about what options should / shouldn't be covered by `-Wunu

[PATCH] D158614: [UBSan] Disable the function sanitizer on an execute-only target.

2023-08-30 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. Yes, this looks good to me too. Thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D158614/new/ https://reviews.llvm.org/D158614 ___ cfe-commits mailing list cfe-commits@lis

[PATCH] D76490: [ARM,MVE] Add ACLE intrinsics for the vminv/vmaxv family.

2020-03-20 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG45a9945b9ea9: [ARM,MVE] Add ACLE intrinsics for the vminv/vmaxv family. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76490/new/

[PATCH] D76491: [ARM,MVE] Add ACLE intrinsics for the vaddv/vaddlv family.

2020-03-20 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG1adfa4c99169: [ARM,MVE] Add ACLE intrinsics for the vaddv/vaddlv family. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76491/new/

[PATCH] D76513: [ReleaseNotes,ARM] MVE intrinsics are all implemented!

2020-03-24 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 252252. simon_tatham added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits. Added an entry to the Clang release notes as well. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D

[PATCH] D76513: [ReleaseNotes,ARM] MVE intrinsics are all implemented!

2020-03-24 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGf282b6ab23a0: [ReleaseNotes,ARM] MVE intrinsics are all implemented! (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76513/new/ ht

[PATCH] D76714: [ARM,MVE] Add missing tests for vqdmlash intrinsics.

2020-03-24 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added a reviewer: miyuki. Herald added subscribers: cfe-commits, dmgreen, kristof.beyls. Herald added a project: clang. These were accidentally left out of D76123 . I added tests for the other three instructions in

[PATCH] D76714: [ARM,MVE] Add missing tests for vqdmlash intrinsics.

2020-03-25 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG8f1651ccead1: [ARM,MVE] Add missing tests for vqdmlash intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76714/new/ http

[PATCH] D75038: [ARM,MVE] Remove 64-bit variants of vbrsrq* intrinsics

2020-02-24 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. This revision is now accepted and ready to land. ... and we weren't //testing// the accidental 64-bit builtins (or else we'd have spotted the problem!), so no tests need to be changed. LGTM. Repository: rG LLVM Github Monorepo

[PATCH] D75252: [ARM,MVE] Add ACLE intrinsics for VQMOV[U]N family.

2020-02-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. These instructions work like VMOVN (narrowing a vector of wide values to h

[PATCH] D75254: [ARM,MVE] Add ACLE intrinsics for VCVT.F32.F16 family.

2020-02-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. These instructions make a vector of `<4 x float>` by widening every other

[PATCH] D75255: [ARM,MVE] Add ACLE intrinsics for VCVT[ANPM] family.

2020-02-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. These instructions convert a vector of floats to a vector of integers of t

[PATCH] D75252: [ARM,MVE] Add ACLE intrinsics for VQMOV[U]N family.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGa41ecf0eb051: [ARM,MVE] Add ACLE intrinsics for VQMOV[U]N family. (authored by simon_tatham). Changed prior to commit: https://reviews.llvm.org/D75252?vs=246934&id=247580#toc Repository: rG LLVM Gith

[PATCH] D75254: [ARM,MVE] Add ACLE intrinsics for VCVT.F32.F16 family.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGb08d2ddd69b4: [ARM,MVE] Add ACLE intrinsics for VCVT.F32.F16 family. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75254/new/ ht

[PATCH] D75255: [ARM,MVE] Add ACLE intrinsics for VCVT[ANPM] family.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG1a8cbfa514ff: [ARM,MVE] Add ACLE intrinsics for VCVT[ANPM] family. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75255/new/ http

[PATCH] D75444: [ARM,MVE] Add the `vsbciq` intrinsics.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. These are exactly parallel to the existing `vadciq` intrinsics, which we i

[PATCH] D75445: [ARM,MVE] Add the `vshlcq` intrinsics.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. The VSHLC instruction performs a left shift of a whole vector register by

[PATCH] D75444: [ARM,MVE] Add the `vsbciq` intrinsics.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 247641. simon_tatham added a comment. clang-formatted the code added to the C test source. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75444/new/ https://reviews.llvm.org/D75444 Files: clang/include/c

[PATCH] D75445: [ARM,MVE] Add the `vshlcq` intrinsics.

2020-03-02 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 247642. simon_tatham added a comment. clang-formatted the new C test file. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75445/new/ https://reviews.llvm.org/D75445 Files: clang/include/clang/Basic/arm_m

[PATCH] D75445: [ARM,MVE] Add the `vshlcq` intrinsics.

2020-03-04 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG068b2f313c7d: [ARM,MVE] Add the `vshlcq` intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75445/new/ https://reviews.ll

[PATCH] D75444: [ARM,MVE] Add the `vsbciq` intrinsics.

2020-03-04 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG810127f6ab5d: [ARM,MVE] Add the `vsbciq` intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75444/new/ https://reviews.ll

[PATCH] D69789: [clang,MveEmitter] Fix sign/zero extension in range limits.

2019-11-04 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added a reviewer: dmgreen. Herald added a project: clang. Herald added a subscriber: cfe-commits. simon_tatham added a child revision: D69791: [ARM,MVE] Add intrinsics for gather/scatter load/stores.. simon_tatham edited the summary of this revision

[PATCH] D69788: [ARM MVE] Remove accidental 64-bit vst2/vld2 intrinsics.

2019-11-04 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added a reviewer: dmgreen. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. ACLE defines no such intrinsic as vst2q_u64, and the MVE instruction set has no corresponding instruction. But I had accidentally added t

[PATCH] D69790: [ARM,MVE] Integer-type nitpicks in MVE intrinsics.

2019-11-04 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added a reviewer: dmgreen. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. simon_tatham added a child revision: D69791: [ARM,MVE] Add intrinsics for gather/scatter load/stores.. A few integer types in the ACLE d

[PATCH] D69790: [ARM,MVE] Integer-type nitpicks in MVE intrinsics.

2019-11-04 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 227692. simon_tatham added a comment. Removed the `asValue` system, which (as you'd guessed) ought to have been part of D69791 . Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D69791: [ARM,MVE] Add intrinsics for gather/scatter load/stores.

2019-11-05 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham marked 3 inline comments as done. simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve_defs.td:175 +// CopyKind expects t and u to be scalars. It returns a scalar +// whose kind (signed, unsigned or float) matches that of k, and whose -

[PATCH] D69789: [clang,MveEmitter] Fix sign/zero extension in range limits.

2019-11-06 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG26bc7cb05edd: [clang,MveEmitter] Fix sign/zero extension in range limits. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69789/new

[PATCH] D69788: [ARM MVE] Remove accidental 64-bit vst2/vld2 intrinsics.

2019-11-06 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG38f016520f6e: [ARM MVE] Remove accidental 64-bit vst2/vld2 intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69788/new/

[PATCH] D69790: [ARM,MVE] Integer-type nitpicks in MVE intrinsics.

2019-11-06 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGf0c6890f32c0: [ARM,MVE] Integer-type nitpicks in MVE intrinsics. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69790/new/ https:

[PATCH] D67160: [clang, ARM] Default to -fno-lax-vector-conversions in ARM v8.1-M.

2019-11-12 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. In D67160#1704840 , @rsmith wrote: > If overload resolution can't distinguish between overloads that perform a lax > vector conversions and those that do not, we should fix that in overload > resolution rather than papering

[PATCH] D67160: [clang, ARM] Default to -fno-lax-vector-conversions in ARM v8.1-M.

2019-11-12 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. (The draft implementations of `vsetq_lane` are now in D70133 .) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D67160/new/ https://reviews.llvm.org/D67160

[PATCH] D70133: [ARM, MVE] Add intrinsics for 'administrative' vector operations.

2019-11-12 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: ostannard, MarkMurrayARM, dmgreen. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. simon_tatham added a parent revision: D70088: [ARM,MVE] Add intrinsics for contiguous load/stores.. This batch

[PATCH] D70088: [ARM,MVE] Add intrinsics for contiguous load/stores.

2019-11-13 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. Yes, `vld1` has the same semantics as `vldrw_*32` or `vldrh_*16` or `vldrb_*8`. It's just a convenience alias that makes polymorphism easier – if I remember rightly the intended use case was people writing MVE intrinsics inside C++ templates. Repository: rG LLV

[PATCH] D70133: [ARM, MVE] Add intrinsics for 'administrative' vector operations.

2019-11-13 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham marked 3 inline comments as done. simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve.td:384 + let params = !foldl([], T.All, tlist, srctype, !listconcat(tlist, + !if(!eq(!cast(desttype),!cast(srctype)),[],[srctype]))) in { +def "v

[PATCH] D70133: [ARM, MVE] Add intrinsics for 'administrative' vector operations.

2019-11-13 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 229111. simon_tatham added a comment. Moved the get/set lane functions out into a separate patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70133/new/ https://reviews.llvm.org/D70133 Files: clang/in

[PATCH] D70188: [ARM,MVE] Add intrinsics for vector get/set lane.

2019-11-13 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: ostannard, MarkMurrayARM, dmgreen. Herald added subscribers: cfe-commits, kristof.beyls. Herald added a project: clang. simon_tatham added a parent revision: D70133: [ARM,MVE] Add intrinsics for 'administrative' vector operations..

[PATCH] D70133: [ARM, MVE] Add intrinsics for 'administrative' vector operations.

2019-11-15 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG902e84556a51: [ARM,MVE] Add intrinsics for 'administrative' vector operations. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D7013

[PATCH] D70188: [ARM,MVE] Add intrinsics for vector get/set lane.

2019-11-15 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG9e37892773c0: [ARM,MVE] Add intrinsics for vector get/set lane. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70188/new/ https:/

[PATCH] D70297: [ARM,MVE] Add intrinsics for vector comparisons.

2019-11-16 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham marked 2 inline comments as done. simon_tatham added inline comments. Comment at: clang/lib/CodeGen/CGBuiltin.cpp:6798 +static llvm::Value *ARMMVEDupVector(CGBuilderTy &Builder, llvm::Value *V) { + // Helper function to duplicate a scalar value V into all lanes of

[PATCH] D70319: [ARM,MVE] Add intrinsics for scalar shifts.

2019-11-16 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: ostannard, MarkMurrayARM, dmgreen. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. This fills in the small family of MVE intrinsics that have nothing to do with vect

[PATCH] D70319: [ARM,MVE] Add intrinsics for scalar shifts.

2019-11-19 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG254b4f250007: [ARM,MVE] Add intrinsics for scalar shifts. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70319/new/ https://revie

[PATCH] D70485: [ARM,MVE] Add intrinsics to deal with predicates.

2019-11-20 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: ostannard, MarkMurrayARM, dmgreen. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. This commit adds the `vpselq` intrinsics which take an MVE predicate word and sele

[PATCH] D70485: [ARM,MVE] Add intrinsics to deal with predicates.

2019-11-21 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 230468. simon_tatham marked an inline comment as done. simon_tatham added a comment. Made all the requested changes. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70485/new/ https://reviews.llvm.org/D70485

[PATCH] D70485: [ARM,MVE] Add intrinsics to deal with predicates.

2019-11-21 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: llvm/include/llvm/IR/IntrinsicsARM.td:780 def int_arm_vctp8 : Intrinsic<[llvm_v16i1_ty], [llvm_i32_ty], [IntrNoMem]>; def int_arm_vctp16 : Intrinsic<[llvm_v8i1_ty], [llvm_i32_ty], [IntrNoMem]>; dmgreen wrote: >

[PATCH] D70485: [ARM,MVE] Add intrinsics to deal with predicates.

2019-11-22 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham updated this revision to Diff 230627. simon_tatham edited the summary of this revision. simon_tatham added a comment. Revised again to fix test failures. But I've also split off the rework of `int_arm_vctp` into a separate patch D70592 , to make it c

[PATCH] D70545: [ARM][MVE][Intrinsics] Add MVE VABD intrinsics.

2019-11-26 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. This mostly LGTM: only a handful of nits. Comment at: clang/include/clang/Basic/arm_mve.td:45 let params = T.Usual in { +def vabdq: Intrinsic $a, $b)>; +} Can you wrap this line to 80 columns, please? I've been trying to fit the r

[PATCH] D70546: [ARM][MVE][Intrinsics] Add MVE VMUL intrinsics.

2019-11-26 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir:219 ; CHECK: renamable $r3, dead $cpsr = tSUBi8 killed renamable $r3, 16, 14, $noreg - ; CHECK: renamable $q0 = MVE_VMULt1i8 killed renamable $q1, killed renamable $q0, 0

[PATCH] D70547: [ARM][MVE][Intrinsics] Add MVE VAND/VORR/VORN/VEOR/VBIC intrinsics.

2019-11-26 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve.td:68 +def "": Intrinsic +(bitcast $a, UVector), I think it's worth adding a comment here explaining why this bitcasting isn't overcomplicating the IR in the in

[PATCH] D70547: [ARM][MVE][Intrinsics] Add MVE VAND/VORR/VORN/VEOR/VBIC intrinsics.

2019-11-26 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. This revision is now accepted and ready to land. LGTM, though I spotted a couple of even tinier last-minute nits. Comment at: clang/include/clang/Basic/arm_mve.td:68 +// Vector and UVector may be different vecto

[PATCH] D70829: [ARM][MVE][Intrinsics] Add VMINQ/VMAXQ/VMINNMQ/VMAXNMQ intrinsics.

2019-12-02 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham accepted this revision. simon_tatham added a comment. I do, but only an indentation quibble. Comment at: clang/include/clang/Basic/arm_mve.td:205 +(select (icmp_ule $a, $b), $a, $b)>, +NameOverride

[PATCH] D70485: [ARM,MVE] Add intrinsics to deal with predicates.

2019-12-02 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGd173fb5d2854: [ARM,MVE] Add intrinsics to deal with predicates. (authored by simon_tatham). Changed prior to commit: https://reviews.llvm.org/D70485?vs=230627&id=231718#toc Repository: rG LLVM Github

[PATCH] D71065: [ARM][MVE] Add intrinsics for immediate shifts.

2019-12-05 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. simon_tatham added reviewers: dmgreen, miyuki, MarkMurrayARM, ostannard. Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls. Herald added projects: clang, LLVM. This adds the family of `vshlq_n` and `vshrq_n` ACLE intrinsics, which shi

[PATCH] D71066: [ARM][MVE][Intrinsics] Add VMULL[BT]Q_(INT|POLY) intrinsics.

2019-12-09 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added inline comments. Comment at: clang/include/clang/Basic/arm_mve_defs.td:281 +// Scalar. +def DblVector: VecOf>; + This could just be `VecOf>`, after you carefully defined `DoubleSize` above. Comment at: llvm/lib/Target/ARM/AR

[PATCH] D71065: [ARM][MVE] Add intrinsics for immediate shifts.

2019-12-09 Thread Simon Tatham via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGd97b3e3e65cd: [ARM][MVE] Add intrinsics for immediate shifts. (authored by simon_tatham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71065/new/ https://r

<    1   2   3   4   >