| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
(i.e. not intrinsics)
llvm-svn: 191291
|
|
|
|
|
|
|
|
| |
not intrinsics)
This required correcting the definition of the bsel and bseli intrinsics.
llvm-svn: 191290
|
|
|
|
|
|
|
|
|
| |
intrinsics)
MIPS SelectionDAG changes:
* Added VCEQ, VCL[ET]_[SU] nodes to represent vector comparisons that produce a bitmask.
llvm-svn: 191286
|
|
|
|
|
|
| |
(i.e. not intrinsics)
llvm-svn: 191285
|
|
|
|
|
|
| |
not intrinsics)
llvm-svn: 191203
|
|
|
|
|
|
|
|
|
|
|
| |
not intrinsics)
Changes to MIPS SelectionDAG:
* Added nodes VEXTRACT_[SZ]EXT_ELT to represent extract and extend in a single
operation and implemented the DAG combines necessary to fold sign/zero
extends into the extract.
llvm-svn: 191199
|
|
|
|
| |
llvm-svn: 191198
|
|
|
|
| |
llvm-svn: 191195
|
|
|
|
|
|
| |
not intrinsics)
llvm-svn: 191194
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SelectionDAG nodes (VSPLAT and VSPLATD)
Note: There's a later patch on my branch that re-implements this to select
build_vector without the custom SelectionDAG nodes. The future patch avoids
the constant-folding problems stemming from the custom node (i.e. it doesn't
need to re-implement all the DAG combines related to BUILD_VECTOR).
Changes to MIPS specific SelectionDAG nodes:
* Added VSPLAT
This is a special case of BUILD_VECTOR that covers the case the
BUILD_VECTOR is a splat operation.
* Added VSPLATD
This is a special case of VSPLAT that handles the cases when v2i64 is legal
llvm-svn: 191191
|
|
|
|
|
|
| |
r190509, r190512, and r190518.
llvm-svn: 190522
|
|
|
|
|
|
| |
from normal IR (i.e. not intrinsics)
llvm-svn: 190518
|
|
|
|
|
|
| |
fsqrt, and fsub from normal IR (i.e. not intrinsics)
llvm-svn: 190512
|
|
|
|
|
|
| |
intrinsics)
llvm-svn: 190509
|
|
|
|
|
|
| |
The corresponding intrinsic is now lowered into equivalent IR (ISD::ADD) before instruction selection.
llvm-svn: 190507
|
|
|
|
|
|
|
| |
The elements of the operands should be half the width of the elements of
the result.
llvm-svn: 190505
|
|
|
|
|
|
| |
The dotp_[su].b instructions never existed in any revision of the MSA spec.
llvm-svn: 190398
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes,
are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as
a branch/mov sequence to evaluate to 0 or 1.
Note: The resulting code is sub-optimal since it doesnt seem to be possible
to feed the result of an intrinsic directly into a brcond. At the moment
it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily
evaluates the boolean twice.
llvm-svn: 189478
|
|
|
|
| |
llvm-svn: 189476
|
|
|
|
| |
llvm-svn: 189471
|
|
|
|
|
|
|
|
| |
The MSA control registers have been added as reserved registers,
and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered
into these nodes.
llvm-svn: 189468
|
|
|
|
|
|
| |
ftrunc_[su], hadd_[su], hsub_[su], sr[al]r, sr[al]ri
llvm-svn: 189467
|
|
|
|
|
|
| |
Adds a comment to the start of each test summarizing the area the test covers.
llvm-svn: 189465
|
|
|
|
|
|
|
|
|
|
|
|
| |
when non-byte vectors are used.
Note that all of these tests use ld.b and st.b for the loads and stores
regardless of the data size. This is because the definition of bitcast is
equivalent to a store/load sequence and DAG combiner accordingly folds bitcasts
to/from v16i8 into the load/store nodes to product load/store nodes with
type v16i8.
llvm-svn: 189333
|
|
|
|
| |
llvm-svn: 189332
|
|
|
|
| |
llvm-svn: 189330
|
|
|
|
|
|
|
| |
These instructions were present in a draft spec but were removed before
publication.
llvm-svn: 188782
|
|
|
|
| |
llvm-svn: 188777
|
|
|
|
| |
llvm-svn: 188767
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes:
madd_q, maddr_q, maddv, max_[asu], maxi_[su], min_[asu], mini_[su], mod_[su],
msub_q, msubr_q, msubv, mul_q, mulr_q, mulv, nloc, nlzc, nori, ori, pckev,
pckod, pcnt, sat_[su], shf, sld, sldi, sll, slli, splat, splati, sr[al],
sr[al]i, subs_[su], subss_u, subus_s, subv, subvi, vshf, xori
Patch by Daniel Sanders
llvm-svn: 188460
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes:
fadd, fceq, fcg[et], fclass, fcl[et], fcne, fcun, fdiv, fexdo, fexp2,
fexup[lr], ffint_[su], ffql, ffqr, fill, flog2, fmadd, fmax, fmax_a, fmin,
fmin_a, fmsub, fmul, frint, frcp, frsqrt, fseq, fsge, fsgt, fsle, fslt,
fsne, fsqr, fsub, ftint_s, ftq
Patch by Daniel Sanders
llvm-svn: 188458
|
|
Includes:
add_a, adds_[asu], addv, addvi, andi.b, asub_[su].[bhwd], aver?_[su]_[bhwd],
bclr, bclri, bins[lr], bins[lr]i, bmnzi, bmzi, bneg, bnegi, bseli, bset, bseti,
c(eq|ne), c(eq|ne)i, cl[et]_[su], cl[et]i_[su], copy_[su].[bhw], div_[su],
dotp_[su], dpadd_[su], dpsub_[su], ilvev, ilvl, ilvod, ilvr, insv, insve,
ldi
Patch by Daniel Sanders
llvm-svn: 188457
|