1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00
Simon Tatham 6a7f82a2fe [ARM,MVE] Add intrinsics to deal with predicates.
Summary:
This commit adds the `vpselq` intrinsics which take an MVE predicate
word and select lanes from two vectors; the `vctp` intrinsics which
create a tail predicate word suitable for processing the first m
elements of a vector (e.g. in the last iteration of a loop); and
`vpnot`, which simply complements a predicate word and is just
syntactic sugar for the `~` operator.

The `vctp` ACLE intrinsics are lowered to the IR intrinsics we've
already added (and which D70592 just reorganized). I've filled in the
missing isel rule for VCTP64, and added another set of rules to
generate the predicated forms.

I needed one small tweak in MveEmitter to allow the `unpromoted` type
modifier to apply to predicates as well as integers, so that `vpnot`
doesn't pointlessly convert its input integer to an `<n x i1>` before
complementing it.

Reviewers: ostannard, MarkMurrayARM, dmgreen

Reviewed By: dmgreen

Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D70485
2019-12-02 16:20:30 +00:00
..
2019-09-17 14:21:36 +00:00
2019-06-17 09:13:29 +00:00
2019-06-28 08:41:40 +00:00
2019-08-08 15:15:19 +00:00
2019-06-28 07:08:42 +00:00
2019-09-16 15:19:49 +00:00
2019-08-28 10:13:23 +00:00
2019-08-28 10:13:23 +00:00
2019-08-28 10:13:23 +00:00
2019-08-28 10:13:23 +00:00
2019-07-15 18:42:54 +00:00
2019-09-19 12:17:41 +00:00
2019-09-16 13:02:41 +00:00
2019-09-16 13:02:41 +00:00
2019-07-15 18:42:54 +00:00
2019-08-28 10:13:23 +00:00
2019-08-28 10:13:23 +00:00
2019-08-28 10:13:23 +00:00
2019-07-15 18:42:54 +00:00
2019-08-28 10:13:23 +00:00
2019-12-02 10:38:14 +00:00
2019-10-14 15:19:33 +00:00
2019-06-17 09:13:29 +00:00
2019-01-10 08:36:33 +00:00
2019-07-27 18:44:15 +00:00
2016-06-16 16:09:53 +00:00
2019-11-20 13:58:38 +00:00
2019-11-25 11:29:14 +00:00