Page MenuHomePhabricator

simon_tatham (Simon Tatham)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2017, 1:23 AM (131 w, 3 d)

Recent Activity

Yesterday

simon_tatham created D72934: [ARM,MVE] Support immediate vbicq,vorrq,vmvnq intrinsics..
Fri, Jan 17, 9:17 AM · Restricted Project, Restricted Project

Thu, Jan 16

simon_tatham accepted D72830: [ARM][MVE][Intrinsics] Take abs() of VMINNMAQ, VMAXNMAQ intrinsics' first arguments..

Hmm. Somewhere in the back of my head is a worry that we may miss an optimization opportunity in cases such as max(a, abs(b)) where value-range analysis tells us that a is known to be positive already.

Thu, Jan 16, 3:43 AM · Restricted Project, Restricted Project
simon_tatham abandoned D67160: [clang,ARM] Default to -fno-lax-vector-conversions in ARM v8.1-M..

I ended up solving this problem a completely different way, in D72518. Instead of controlling the behavior I need based on the target architecture, I made it depend on a type attribute on the vector types, so that the MVE header file adds that attribute but nobody else does. And doing it like that I was also able to make the behavior more subtle, so that it makes the polymorphic MVE intrinsics work without also turning every case of lax vector checking into strict – so users still get to make a choice about how strict they want their vectors to be, and the intrinsics work either way.

Thu, Jan 16, 3:40 AM · Restricted Project
simon_tatham added a comment to D72633: [ARM][MVE] Fix a corner case of checking for MVE-I with -mfpu=none.

While we're on the subject, it's always seemed odd to me in the first place that -mfloat-abi=soft prevents all use of the FP registers! By a literal reading of the option name, it surely ought to only disallow use of the FP registers at function call boundaries. I'd expect it to mean "Make my functions ABI-compatible with code built for a CPU with no FP regs at all, but within that constraint, do whatever will get the job done fastest"; using FP registers and hardware FP operations inside a function ought still to be legitimate, provided you transfer the return value back into the right integer register(s) once you've finished computing it.

Thu, Jan 16, 2:54 AM

Wed, Jan 15

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

LGTM this time. Thanks for the rewrite!

Wed, Jan 15, 8:40 AM · Restricted Project, Restricted Project
simon_tatham committed rGada01d1b8697: [clang] New __attribute__((__clang_arm_mve_strict_polymorphism)). (authored by simon_tatham).
[clang] New __attribute__((__clang_arm_mve_strict_polymorphism)).
Wed, Jan 15, 7:07 AM
simon_tatham closed D72518: [clang] New __attribute__((arm_mve_strict_polymorphism))..
Wed, Jan 15, 7:07 AM · Restricted Project
simon_tatham added inline comments to D72761: [ARM][MVE][Intrinsics] Add VMINAQ, VMINNMAQ, VMAXAQ, VMAXNMAQ intrinsics..
Wed, Jan 15, 6:31 AM · Restricted Project, Restricted Project
simon_tatham accepted D71194: [ARM] MVE VLDn addressing modes.

OK, this LGTM from the point of view of what's happening in the tests.

Wed, Jan 15, 3:42 AM · Restricted Project
simon_tatham added inline comments to D71194: [ARM] MVE VLDn addressing modes.
Wed, Jan 15, 1:23 AM · Restricted Project

Tue, Jan 14

simon_tatham added inline comments to D72518: [clang] New __attribute__((arm_mve_strict_polymorphism))..
Tue, Jan 14, 9:18 AM · Restricted Project
simon_tatham retitled D72518: [clang] New __attribute__((arm_mve_strict_polymorphism)). from [clang] New __attribute__((__clang_arm_mve_strict_polymorphism)). to [clang] New __attribute__((arm_mve_strict_polymorphism))..
Tue, Jan 14, 9:18 AM · Restricted Project
simon_tatham updated the diff for D72518: [clang] New __attribute__((arm_mve_strict_polymorphism))..
  • 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 NeonVector.
  • Added some error tests demonstrating the new diagnostic.
  • Added code examples to the docs.
Tue, Jan 14, 9:08 AM · Restricted Project
simon_tatham committed rGe3ed63e83ab6: [TableGen] Update editor modes for new keywords. (authored by simon_tatham).
[TableGen] Update editor modes for new keywords.
Tue, Jan 14, 5:46 AM
simon_tatham closed D72693: [TableGen] Update editor modes for new keywords..
Tue, Jan 14, 5:44 AM · Restricted Project
simon_tatham added inline comments to D72693: [TableGen] Update editor modes for new keywords..
Tue, Jan 14, 5:16 AM · Restricted Project
simon_tatham added inline comments to D72693: [TableGen] Update editor modes for new keywords..
Tue, Jan 14, 4:58 AM · Restricted Project
simon_tatham created D72693: [TableGen] Update editor modes for new keywords..
Tue, Jan 14, 4:39 AM · Restricted Project
simon_tatham committed rG71d5454b3772: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements. (authored by simon_tatham).
[ARM,MVE] Use the new Tablegen `defvar` and `if` statements.
Tue, Jan 14, 4:11 AM
simon_tatham closed D72690: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements..
Tue, Jan 14, 4:11 AM · Restricted Project, Restricted Project
simon_tatham created D72690: [ARM,MVE] Use the new Tablegen `defvar` and `if` statements..
Tue, Jan 14, 2:43 AM · Restricted Project, Restricted Project
simon_tatham committed rGddbc0b1e5164: [TableGen] Introduce an if/then/else statement. (authored by simon_tatham).
[TableGen] Introduce an if/then/else statement.
Tue, Jan 14, 2:23 AM
simon_tatham closed D71474: [TableGen] Introduce an if/then/else statement..
Tue, Jan 14, 2:23 AM · Restricted Project
simon_tatham committed rG3388b0f59dcc: [TableGen] Introduce a `defvar` statement. (authored by simon_tatham).
[TableGen] Introduce a `defvar` statement.
Tue, Jan 14, 2:23 AM
simon_tatham closed D71407: [TableGen] Introduce a `defvar` statement..
Tue, Jan 14, 2:23 AM · Restricted Project

Mon, Jan 13

simon_tatham added a comment to D71407: [TableGen] Introduce a `defvar` statement..

@nhaehnle, @hfinkel: anything left I need to do to this?

Mon, Jan 13, 5:57 AM · Restricted Project
simon_tatham added a comment to D71474: [TableGen] Introduce an if/then/else statement..

@nhaehnle, @hfinkel: anything left I need to do to this?

Mon, Jan 13, 5:57 AM · Restricted Project

Fri, Jan 10

simon_tatham created D72518: [clang] New __attribute__((arm_mve_strict_polymorphism))..
Fri, Jan 10, 9:18 AM · Restricted Project
simon_tatham committed rG1ccee0e86386: [ARM,MVE] Make `vqrshrun` generate the right instruction. (authored by simon_tatham).
[ARM,MVE] Make `vqrshrun` generate the right instruction.
Fri, Jan 10, 3:34 AM
simon_tatham closed D72496: [ARM,MVE] Make `vqrshrun` generate the right instruction..
Fri, Jan 10, 3:34 AM · Restricted Project
simon_tatham created D72496: [ARM,MVE] Make `vqrshrun` generate the right instruction..
Fri, Jan 10, 2:59 AM · Restricted Project

Thu, Jan 9

simon_tatham committed rG06d07ec4a372: [Clang] Handle target-specific builtins returning aggregates. (authored by simon_tatham).
[Clang] Handle target-specific builtins returning aggregates.
Thu, Jan 9, 9:37 AM
simon_tatham closed D72271: [Clang] Handle target-specific builtins returning aggregates..
Thu, Jan 9, 9:37 AM · Restricted Project
simon_tatham closed D72444: [ARM,MVE] Fix valid immediate range for vsliq_n..

Closed by rGd857e114b5e04f5143485a5aea7ad9b283768692. (I managed to leave off the commit message footer, sorry.)

Thu, Jan 9, 7:43 AM · Restricted Project
simon_tatham closed D72445: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics..

Closed by rG9704ba652a0062c53ec66b068766df5c0cd5c620. (I managed to leave off the commit message footer, sorry.)

Thu, Jan 9, 7:43 AM · Restricted Project
simon_tatham added an edge to rGd857e114b5e0: [ARM,MVE] Fix valid immediate range for vsliq_n.: D72444: [ARM,MVE] Fix valid immediate range for vsliq_n..
Thu, Jan 9, 7:43 AM
simon_tatham added an edge to rG9704ba652a00: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics.: D72445: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics..
Thu, Jan 9, 7:43 AM
simon_tatham added 1 commit(s) for D72444: [ARM,MVE] Fix valid immediate range for vsliq_n.: rGd857e114b5e0: [ARM,MVE] Fix valid immediate range for vsliq_n..
Thu, Jan 9, 7:43 AM · Restricted Project
simon_tatham added 1 commit(s) for D72445: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics.: rG9704ba652a00: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics..
Thu, Jan 9, 7:43 AM · Restricted Project
simon_tatham committed rG9704ba652a00: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics. (authored by simon_tatham).
[ARM,MVE] Add missing IntrNoMem flag on IR intrinsics.
Thu, Jan 9, 7:06 AM
simon_tatham committed rGd857e114b5e0: [ARM,MVE] Fix valid immediate range for vsliq_n. (authored by simon_tatham).
[ARM,MVE] Fix valid immediate range for vsliq_n.
Thu, Jan 9, 7:06 AM
simon_tatham updated the diff for D72445: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics..

Removed the now redundant IntrNoMem, and moved cls up to before the MVE section. The output of llvm-tblgen -print-records on the whole of ARM.td is unchanged by these fixes.

Thu, Jan 9, 6:09 AM · Restricted Project
simon_tatham created D72445: [ARM,MVE] Add missing IntrNoMem flag on IR intrinsics..
Thu, Jan 9, 5:11 AM · Restricted Project
simon_tatham created D72444: [ARM,MVE] Fix valid immediate range for vsliq_n..
Thu, Jan 9, 5:11 AM · Restricted Project
simon_tatham updated the diff for D72271: [Clang] Handle target-specific builtins returning aggregates..

Moved the llvm_unreachable.

Thu, Jan 9, 2:26 AM · Restricted Project

Wed, Jan 8

simon_tatham committed rGdac7b23cc3ef: [ARM,MVE] Intrinsics for variable shift instructions. (authored by simon_tatham).
[ARM,MVE] Intrinsics for variable shift instructions.
Wed, Jan 8, 6:44 AM
simon_tatham closed D72329: [ARM,MVE] Intrinsics for variable shift instructions..
Wed, Jan 8, 6:44 AM · Restricted Project, Restricted Project
simon_tatham committed rG3100480925df: [ARM,MVE] Intrinsics for partial-overwrite imm shifts. (authored by simon_tatham).
[ARM,MVE] Intrinsics for partial-overwrite imm shifts.
Wed, Jan 8, 6:44 AM
simon_tatham closed D72328: [ARM,MVE] Intrinsics for partial-overwrite imm shifts..
Wed, Jan 8, 6:44 AM · Restricted Project, Restricted Project
simon_tatham updated the diff for D72271: [Clang] Handle target-specific builtins returning aggregates..

Restructured as suggested.

Wed, Jan 8, 1:57 AM · Restricted Project

Tue, Jan 7

simon_tatham accepted D71843: [ARM][MVE] MVE-I should not be disabled by -mfpu=none.

LGTM, with a request for an extra comment.

Tue, Jan 7, 6:18 AM · Restricted Project, Restricted Project
simon_tatham updated the diff for D72271: [Clang] Handle target-specific builtins returning aggregates..

Thanks for the helpful advice!

Tue, Jan 7, 6:00 AM · Restricted Project
simon_tatham created D72328: [ARM,MVE] Intrinsics for partial-overwrite imm shifts..
Tue, Jan 7, 6:00 AM · Restricted Project, Restricted Project
simon_tatham created D72329: [ARM,MVE] Intrinsics for variable shift instructions..
Tue, Jan 7, 6:00 AM · Restricted Project, Restricted Project
simon_tatham updated the summary of D72271: [Clang] Handle target-specific builtins returning aggregates..
Tue, Jan 7, 6:00 AM · Restricted Project

Mon, Jan 6

simon_tatham committed rG4978296cd8e4: [ARM,MVE] Support -ve offsets in gather-load intrinsics. (authored by simon_tatham).
[ARM,MVE] Support -ve offsets in gather-load intrinsics.
Mon, Jan 6, 8:34 AM
simon_tatham committed rG34817e04feeb: [ARM,MVE] Fix many signedness errors in MVE intrinsics. (authored by simon_tatham).
[ARM,MVE] Fix many signedness errors in MVE intrinsics.
Mon, Jan 6, 8:34 AM
simon_tatham closed D72270: [ARM,MVE] Fix many signedness errors in MVE intrinsics..
Mon, Jan 6, 8:34 AM · Restricted Project, Restricted Project
simon_tatham closed D72268: [ARM,MVE] Support -ve offsets in gather-load intrinsics..
Mon, Jan 6, 8:34 AM · Restricted Project, Restricted Project
simon_tatham committed rGb99ef32d041c: [ARM,MVE] Generate the right instruction for vmaxnmq_m_f16. (authored by simon_tatham).
[ARM,MVE] Generate the right instruction for vmaxnmq_m_f16.
Mon, Jan 6, 8:31 AM
simon_tatham closed D72269: [ARM,MVE] Generate the right instruction for vmaxnmq_m_f16..
Mon, Jan 6, 8:31 AM · Restricted Project
simon_tatham added inline comments to D72270: [ARM,MVE] Fix many signedness errors in MVE intrinsics..
Mon, Jan 6, 8:21 AM · Restricted Project, Restricted Project
simon_tatham added inline comments to D71843: [ARM][MVE] MVE-I should not be disabled by -mfpu=none.
Mon, Jan 6, 7:20 AM · Restricted Project, Restricted Project
simon_tatham created D72271: [Clang] Handle target-specific builtins returning aggregates..
Mon, Jan 6, 7:01 AM · Restricted Project
simon_tatham created D72270: [ARM,MVE] Fix many signedness errors in MVE intrinsics..
Mon, Jan 6, 7:01 AM · Restricted Project, Restricted Project
simon_tatham created D72269: [ARM,MVE] Generate the right instruction for vmaxnmq_m_f16..
Mon, Jan 6, 7:01 AM · Restricted Project
simon_tatham created D72268: [ARM,MVE] Support -ve offsets in gather-load intrinsics..
Mon, Jan 6, 7:01 AM · Restricted Project, Restricted Project

Thu, Jan 2

simon_tatham updated the diff for D71474: [TableGen] Introduce an if/then/else statement..

Added documentation and more tests; changed scoping policy so that then and else clauses do make a new scope for defvar; rebased on top of the revised D71407.

Thu, Jan 2, 4:56 AM · Restricted Project
simon_tatham added a comment to D71474: [TableGen] Introduce an if/then/else statement..

Without introducing a scope, the above is presumably valid but in a rather surprising way.

Thu, Jan 2, 4:55 AM · Restricted Project
simon_tatham added inline comments to D71407: [TableGen] Introduce a `defvar` statement..
Thu, Jan 2, 4:55 AM · Restricted Project
simon_tatham updated the diff for D71407: [TableGen] Introduce a `defvar` statement..

Addressed all review comments (I think).

Thu, Jan 2, 4:55 AM · Restricted Project

Dec 13 2019

simon_tatham added a comment to D71474: [TableGen] Introduce an if/then/else statement..

This is a hasty first draft because I'm about to go away for the holidays, and won't have access to this account until the New Year.

Dec 13 2019, 9:28 AM · Restricted Project
simon_tatham created D71474: [TableGen] Introduce an if/then/else statement..
Dec 13 2019, 9:28 AM · Restricted Project
simon_tatham updated the diff for D71407: [TableGen] Introduce a `defvar` statement..

Revised patch which keeps local-variable scopes in a stack, and opens
a temporary scope for each multiclass body, object body, or foreach body.

Dec 13 2019, 7:47 AM · Restricted Project
simon_tatham accepted D71466: [ARM][MVE][Intrinsics] remove extraneous intrinsics..
Dec 13 2019, 7:47 AM · Restricted Project
simon_tatham added a comment to D71407: [TableGen] Introduce a `defvar` statement..

This also seems consistent with the feature overall. Are there reasons why we might not want to do this?

Dec 13 2019, 6:16 AM · Restricted Project
simon_tatham committed rG25305a9311d4: [ARM][MVE] Add intrinsics for more immediate shifts. (authored by simon_tatham).
[ARM][MVE] Add intrinsics for more immediate shifts.
Dec 13 2019, 5:13 AM
simon_tatham closed D71458: [ARM][MVE] Add intrinsics for more immediate shifts..
Dec 13 2019, 5:12 AM · Restricted Project, Restricted Project
simon_tatham added inline comments to D71458: [ARM][MVE] Add intrinsics for more immediate shifts..
Dec 13 2019, 3:41 AM · Restricted Project, Restricted Project
simon_tatham added inline comments to D71458: [ARM][MVE] Add intrinsics for more immediate shifts..
Dec 13 2019, 3:41 AM · Restricted Project, Restricted Project
simon_tatham accepted D71421: [ARM][MVE][Intrinsics] Add *_x() variants of my *_m() intrinsics. .

LGTM. I must admit that I probably didn't manage to take in every single detail of the revised test collection, but the shape of it looks generally nice, and everything I spot-checked looked spot-on. And the diffs in actual source files are definitely an improvement :-)

Dec 13 2019, 3:23 AM · Restricted Project, Restricted Project
simon_tatham created D71458: [ARM][MVE] Add intrinsics for more immediate shifts..
Dec 13 2019, 3:12 AM · Restricted Project, Restricted Project

Dec 12 2019

simon_tatham added a comment to D71407: [TableGen] Introduce a `defvar` statement..

I've been working around the lack of this for a while, so I thought it was worth at least trying to get it accepted.

Dec 12 2019, 3:30 AM · Restricted Project
simon_tatham created D71407: [TableGen] Introduce a `defvar` statement..
Dec 12 2019, 3:22 AM · Restricted Project

Dec 11 2019

simon_tatham abandoned D71115: [TableGen] Add a permissive version of !con..

D71191 and D71195 are both now committed (thanks!), so I have a choice of two ways to achieve my original objective, and no further need for this third one.

Dec 11 2019, 4:28 AM · Restricted Project
simon_tatham committed rGd290424731ed: [ARM][MVE] Factor out an IntrinsicMX multiclass. (authored by simon_tatham).
[ARM][MVE] Factor out an IntrinsicMX multiclass.
Dec 11 2019, 4:09 AM
simon_tatham closed D71335: [ARM][MVE] Factor out an IntrinsicMX multiclass..
Dec 11 2019, 4:09 AM · Restricted Project
simon_tatham committed rG1fed9a0c0c3e: [TableGen] Add bang-operators !getop and !setop. (authored by simon_tatham).
[TableGen] Add bang-operators !getop and !setop.
Dec 11 2019, 4:09 AM
simon_tatham closed D71191: [TableGen] Add bang-operators !getop and !setop..
Dec 11 2019, 4:09 AM · Restricted Project
simon_tatham added a comment to D71191: [TableGen] Add bang-operators !getop and !setop..

OK, I'll commit it as is. Thanks!

Dec 11 2019, 4:09 AM · Restricted Project
simon_tatham updated the diff for D71335: [ARM][MVE] Factor out an IntrinsicMX multiclass..

Refactored further to remove the PredicatedImmediateVectorShift
multiclass completely: the amount of useful content remaining in it
now doesn't seem to justify its existence.

Dec 11 2019, 2:57 AM · Restricted Project
simon_tatham updated the summary of D71335: [ARM][MVE] Factor out an IntrinsicMX multiclass..
Dec 11 2019, 2:57 AM · Restricted Project
simon_tatham created D71335: [ARM][MVE] Factor out an IntrinsicMX multiclass..
Dec 11 2019, 2:50 AM · Restricted Project
simon_tatham committed rGbd0f271c9e55: [ARM][MVE] Add intrinsics for immediate shifts. (reland) (authored by simon_tatham).
[ARM][MVE] Add intrinsics for immediate shifts. (reland)
Dec 11 2019, 2:11 AM
simon_tatham closed D71065: [ARM][MVE] Add intrinsics for immediate shifts..
Dec 11 2019, 2:11 AM · Restricted Project, Restricted Project

Dec 10 2019

simon_tatham committed rG0e894edee18f: [TableGen] Permit dag operators to be unset. (authored by simon_tatham).
[TableGen] Permit dag operators to be unset.
Dec 10 2019, 3:18 AM
simon_tatham closed D71195: [TableGen] Permit dag operators to be unset..
Dec 10 2019, 3:18 AM · Restricted Project
simon_tatham added a comment to D71191: [TableGen] Add bang-operators !getop and !setop..

I'm sorry, I'm not sure I understand that question.

Dec 10 2019, 2:41 AM · Restricted Project
simon_tatham updated subscribers of D71065: [ARM][MVE] Add intrinsics for immediate shifts..

@hokein , @rdhindsa , @echristo : you all pointed out test failures in the previous version. Any problems I haven't spotted with this one?

Dec 10 2019, 2:41 AM · Restricted Project, Restricted Project
simon_tatham updated the diff for D71065: [ARM][MVE] Add intrinsics for immediate shifts..

Changes from previous version:

Dec 10 2019, 2:32 AM · Restricted Project, Restricted Project