Commit Graph

49559 Commits

Author SHA1 Message Date
Wouter van Oortmerssen 013c07f165 [WebAssembly] Fixed stale assert message in WebAssemblyMCInstLower
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341423 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 22:59:05 +00:00
Scott Linder 6da9a35885 [AMDGPU] Legalize VGPR Rsrc operands for MUBUF instructions
Emit a waterfall loop in the general case for a potentially-divergent Rsrc
operand. When practical, avoid this by using Addr64 instructions.

Differential Revision: https://reviews.llvm.org/D50982


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341413 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 21:50:47 +00:00
Thomas Lively c5f4b48f16 [WebAssembly][NFC] Fix formatting and tests
Summary: Small fixes

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D51656

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341411 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 21:26:17 +00:00
Krzysztof Parzyszek 09f9778d84 [Hexagon] Don't packetize new-value stores with any other stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341409 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 21:07:27 +00:00
Martin Storsjo 5d04fc0ef3 [MinGW] Move code for indicating "potentially not DSO local" into shouldAssumeDSOLocal. NFC.
On Windows, if shouldAssumeDSOLocal returns false, it's either a
dllimport reference, or a reference that we should treat as non-local
and create a stub for.

Clean up AArch64Subtarget::ClassifyGlobalReference a little while
touching the flag handling relating to dllimport.

Differential Revision: https://reviews.llvm.org/D51590

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341402 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 20:56:28 +00:00
Martin Storsjo 42d7052fc2 [MinGW] [AArch64] Add stubs for potential automatic dllimported variables
The runtime pseudo relocations can't handle the AArch64 format PC
relative addressing in adrp+add/ldr pairs. By using stubs, the potentially
dllimported addresses can be touched up by the runtime pseudo relocation
framework.

Differential Revision: https://reviews.llvm.org/D51452

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341401 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 20:56:21 +00:00
Matt Arsenault 49cbe528e3 AMDGPU: Fix DAG divergence not reporting flat loads
Match behavior in DAG of r340343

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341393 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 18:58:19 +00:00
Dan Gohman b9587f4923 [WebAssembly] Fix operand rewriting in inline asm lowering.
Use MachineOperand::ChangeToImmediate rather than reassigning
MachineOperands to new values created from MachineOperand::CreateImm,
so that their parent pointers are preserved.

This fixes "Instruction has operand with wrong parent set" errors
reported by the MachineVerifier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341389 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 17:46:12 +00:00
Chandler Carruth d2b1fb11d3 [x86/SLH] Add a real Clang flag and LLVM IR attribute for Speculative
Load Hardening.

Wires up the existing pass to work with a proper IR attribute rather
than just a hidden/internal flag. The internal flag continues to work
for now, but I'll likely remove it soon.

Most of the churn here is adding the IR attribute. I talked about this
Kristof Beyls and he seemed at least initially OK with this direction.
The idea of using a full attribute here is that we *do* expect at least
some forms of this for other architectures. There isn't anything
*inherently* x86-specific about this technique, just that we only have
an implementation for x86 at the moment.

While we could potentially expose this as a Clang-level attribute as
well, that seems like a good question to defer for the moment as it
isn't 100% clear whether that or some other programmer interface (or
both?) would be best. We'll defer the programmer interface side of this
for now, but at least get to the point where the feature can be enabled
without relying on implementation details.

This also allows us to do something that was really hard before: we can
enable *just* the indirect call retpolines when using SLH. For x86, we
don't have any other way to mitigate indirect calls. Other architectures
may take a different approach of course, and none of this is surfaced to
user-level flags.

Differential Revision: https://reviews.llvm.org/D51157

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341363 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 12:38:00 +00:00
Chandler Carruth 2ec0ce0cc3 [x86/SLH] Teach SLH to harden against the "ret2spec" attack by
implementing the proposed mitigation technique described in the original
design document.

The idea is to check after calls that the return address used to arrive
at that location is in fact the correct address. In the event of
a mis-predicted return which reaches a *valid* return but not the
*correct* return, this will detect the mismatch much like it would
a mispredicted conditional branch.

This is the last published attack vector that I am aware of in the
Spectre v1 space which is not mitigated by SLH+retpolines. However,
don't read *too* much into that: this is an area of ongoing research
where we expect more issues to be discovered in the future, and it also
makes no attempt to mitigate Spectre v4. Still, this is an important
completeness bar for SLH.

The change here is of course delightfully simple. It was predicated on
cutting support for post-instruction symbols into LLVM which was not at
all simple. Many thanks to Hal Finkel, Reid Kleckner, and Justin Bogner
who helped me figure out how to do a bunch of the complex changes
involved there.

Differential Revision: https://reviews.llvm.org/D50837

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341358 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 10:59:10 +00:00
Chandler Carruth be7ae28b63 [x86/SLH] Teach SLH to harden indirect branches and switches without
retpolines.

This implements the core design of tracing the intended target into the
target, checking it, and using that to update the predicate state. It
takes advantage of a few interesting aspects of SLH to make it a bit
easier to implement:
- We already split critical edges with conditional branches, so we can
assume those are gone.
- We already unfolded any memory access in the indirect branch
instruction itself.

I've left hard errors in place to catch if any of these somewhat subtle
invariants get violated.

There is some code that I can factor out and share with D50837 when it
lands, but I didn't want to couple landing the two patches, so I'll do
that in a follow-up cleanup commit if alright.

Factoring out the code to handle different scenarios of materializing an
address remains frustratingly hard. In a bunch of cases you want to fold
one of the cases into an immediate operand of some other instruction,
and you also have both symbols and basic blocks being used which require
different methods on the MI builder (and different operand kinds).
Still, I'll take a stab at sharing at least some of this code in
a follow-up if I can figure out how.

Differential Revision: https://reviews.llvm.org/D51083

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341356 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-04 10:44:21 +00:00
Simon Atanasyan 0f7b987bae [mips] Disable the selection of mixed microMIPS/MIPS code
This patch modifies hasStandardEncoding() / inMicroMipsMode() /
inMips16Mode() methods of the MipsSubtarget class so only one can be
true at any one time. That prevents the selection of microMIPS and MIPS
instructions and patterns that are defined in TableGen files at the same
time. A few new patterns and instruction definitions hae been added to
keep test cases passed.

Differential revision: https://reviews.llvm.org/D51483

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341338 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 20:48:55 +00:00
Sid Manning c4a79cd8d6 Revert [Hexagon] Add support for getRegisterByName.
Support required to build the Hexagon Linux kernel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341331 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 17:59:10 +00:00
Andrea Di Biagio aab21a79d1 [X86] Remove wrong ReadAdvance from multiclass sse_fp_unop_s.
A ReadAdvance was incorrectly added to the SchedReadWrite list associated with
the following SSE instructions:

sqrtss
sqrtsd
rsqrtss
rcpss

As a consequence, a wrong operand latency was computed for the register operand
used as the base address of the folded load operand.

This patch removes the wrong ReadAdvance, and updates the llvm-mca test cases.
There is still a problem with correctly modeling partial register writes on XMM
registers This other problem is currently tracked here:
https://bugs.llvm.org/show_bug.cgi?id=38813

Differential Revision: https://reviews.llvm.org/D51542


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341326 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 16:47:34 +00:00
Argyrios Kyrtzidis f4bf809d30 Add header guards to some headers that are missing them
Also adjust some of dsymutil's headers to put the header guards at the top,
otherwise the compiler will not recognize them as header guards.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341323 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 16:22:05 +00:00
Martin Storsjo 8e6fd5fa48 [AArch64] Simplify code in LowerGlobalAddress. NFCI.
When initial support for dllimport was added for aarch64 in
SVN r316555, ClassifyGlobalReference didn't set the MO_DLLIMPORT
flag - that was only completed in SVN r323810. Reuse the return
value from ClassifyGlobalReference for this purpose as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341310 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 11:59:23 +00:00
Daniel Cederman dfcc987b64 [Sparc] allow tls_add/tls_call syntax in assembler parser
Summary: Removing unneeded isCodeGenOnly from tls-specific
instructions - TLS_ADD/TLS_LD/TLS_LDX/TLS_CALL.

Author: fedor.sergeev

Reviewers: jyknight, fedor.sergeev

Reviewed By: jyknight

Subscribers: dcederman, brad, llvm-commits

Differential Revision: https://reviews.llvm.org/D36463

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341308 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 10:38:12 +00:00
Simon Pilgrim 3b146be88b Remove unnecessary semicolon to silence -Wpedantic warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341303 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 10:17:25 +00:00
Sander de Smalen 1d40abd282 Extend hasStoreToStackSlot with list of FI accesses.
For instructions that spill/fill to and from multiple frame-indices
in a single instruction, hasStoreToStackSlot and hasLoadFromStackSlot
should return an array of accesses, rather than just the first encounter
of such an access.

This better describes FI accesses for AArch64 (paired) LDP/STP
instructions.

Reviewers: t.p.northover, gberry, thegameg, rengolin, javed.absar, MatzeB

Reviewed By: MatzeB

Differential Revision: https://reviews.llvm.org/D51537


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341301 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 09:15:58 +00:00
QingShan Zhang 7cbb2dde80 [PowerPC] Add Itineraries of IIC_IntRotateDI for P7/P8
When doing some instruction scheduling work, we noticed some missing itineraries.
Before we switch to machine scheduler, those missing itineraries might not have impact to actually scheduling, 
because we can still get same latency due to default values.

With machine scheduler, however, itineraries will have impact to scheduling.
eg: NumMicroOps will default to be 0 if there is NO itineraries for specific instruction class.
And most of the instruction class with itineraries will have NumMicroOps default to 1.

This will has impact on the count of RetiredMOps, affects the Pending/Available Queue, 
then causing different scheduling or suboptimal scheduling further.

Patch by jsji (Jinsong Ji)
Differential Revision: https://reviews.llvm.org/D51506


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341293 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-03 03:14:29 +00:00
Dylan McKay 001bbba7fe [AVR] Redefine the 'LSL' instruction as an alias of 'ADD'
The 'LSL Rd' instruction is equivalent to 'ADD Rd, Rd'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341278 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-01 12:23:00 +00:00
Dylan McKay 777b95dd3d [AVR] Redefine the 'SBR' instruction as an alias
This fixes a TableGen warning about duplicate bit patterns.

SBR
===

This is an alias of 'ORI Rd, K'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341277 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-01 12:22:54 +00:00
Dylan McKay dfd17d0fb9 [AVR] Define the TST instruction as an alias of AND
The 'tst Rd' instruction is equivalent to 'and Rd, Rd'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341276 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-01 12:22:50 +00:00
Dylan McKay 855b4f981a [AVR] Define the ROL instruction as an alias of ADC
The 'rol Rd' instruction is equivalent to 'adc Rd'.

This caused compile warnings from tablegen because of conflicting bits
shared between each instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341275 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-01 12:22:07 +00:00
Tom Stellard 051c613085 AMDGPU/GlobalISel: Define instruction mapping for G_SELECT
Reviewers: arsenm

Reviewed By: arsenm

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, llvm-commits, t-tye

Differential Revision: https://reviews.llvm.org/D49737

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341271 91177308-0d34-0410-b5e6-96231b3b80d8
2018-09-01 02:41:19 +00:00
Stanislav Mekhanoshin 44c99af37e [AMDGPU] Split v32i32 loads
Differential Revision: https://reviews.llvm.org/D51555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341266 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 22:43:36 +00:00
Krzysztof Parzyszek 0c44dadb71 [Hexagon] Don't access non-existent instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341264 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 22:10:04 +00:00
Craig Topper 3fad8a772e [X86] Add intrinsics for KTEST instructions.
These intrinsics use the same implementation as PTEST intrinsics, but use vXi1 vectors.

New clang builtins will be accompanying them shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341259 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 21:31:53 +00:00
Sid Manning 8a0d68fb02 [Hexagon] Add support for getRegisterByName.
Support required to build the Hexagon Linux kernel.

Differential Revision: https://reviews.llvm.org/D51363

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341238 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 19:08:23 +00:00
Craig Topper 3bdab0c31e [X86] Add support for turning vXi1 shuffles into KSHIFTL/KSHIFTR.
This patch recognizes shuffles that shift elements and fill with zeros. I've copied and modified the shift matching code we use for normal vector registers to do this. I'm not sure if there's a good way to share more of this code without making the existing function more complex than it already is.

This will be used to enable kshift intrinsics in clang.

Differential Revision: https://reviews.llvm.org/D51401

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341227 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 17:17:21 +00:00
Andrea Di Biagio 8f931c7147 [X86][BtVer2] Remove wrong ReadAdvance from AVX vbroadcast(ss|sd|f128) instructions.
The presence of a ReadAdvance for input operand #0 is problematic
because it changes the input latency of the register used as the base address
for the folded load.

A broadcast cannot start executing if the load address hasn't been computed yet.

In the llvm-mca example, the VBROADCASTSS is dependent on the address generated
by the LEAQ.  That means, it cannot start until LEAQ reaches the write-back
stage. If we apply ReadAdvance, then we wrongly assume that the load can start 3
cycles in advance.

Differential Revision: https://reviews.llvm.org/D51534


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341222 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 16:05:48 +00:00
Simon Atanasyan 3ecff60381 [mips] Fix mtc1 and mfc1 definitions for microMIPS R6
The `mtc1` and `mfc1` definitions in the MipsInstrFPU.td have MMRel,
but do not have StdMMR6Rel tags. When these instructions are emitted
for microMIPS R6 targets, `Mips::MipsR62MicroMipsR6` nor
`Mips::Std2MicroMipsR6` cannot find correct op-codes and as a result the
backend uses mips32 variant of the instructions encoding.

The patch fixes this problem by adding the StdMMR6Rel tag and check
instructions encoding in the test case.

Differential revision: https://reviews.llvm.org/D51482

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341221 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 15:57:17 +00:00
Matt Arsenault 6241a83e35 AMDGPU: Restrict extract_vector_elt combine to loads
The intention is to enable the extract_vector_elt load combine,
and doing this for other operations interferes with more
useful optimizations on vectors.

Handle any type of load since in principle we should do the
same combine for the various load intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341219 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 15:39:52 +00:00
Alexander Ivchenko a3d05d4460 [GlobalISel][X86] Add the support for G_FPTRUNC
Differential Revision: https://reviews.llvm.org/D49855


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341202 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 11:26:51 +00:00
Alexander Ivchenko 7764ab8163 [GlobalISel][X86_64] Support for G_FPTOSI
Differential Revision: https://reviews.llvm.org/D49183


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341200 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 11:16:58 +00:00
Alexander Ivchenko b9f4344b8a [GlobalIsel][X86] Support for llvm.trap intrinsic
Differential Revision: https://reviews.llvm.org/D49180


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341199 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 11:05:13 +00:00
Alexander Ivchenko be4bb82814 [NFC] Fix unused variable warning in X86RegisterBankInfo.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341198 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 10:39:54 +00:00
Alexander Ivchenko e243598262 [GlobalIsel][X86] Support for G_FCMP
Differential Revision: https://reviews.llvm.org/D49172



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341193 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 09:38:27 +00:00
Andrea Di Biagio 53c157a290 [X86][BtVer2] Fix WriteFShuffle256 schedule write info.
This patch fixes the number of micro opcodes, and processor resource cycles for
the following AVX instructions:

vinsertf128rr/rm
vperm2f128rr/rm
vbroadcastf128

Tests have been regenerated using the usual scripts in the llvm/utils directory.

Differential Revision: https://reviews.llvm.org/D51492


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341185 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 08:30:47 +00:00
Martin Storsjo 48aa7c7498 [AArch64] Hook up the missed machine operand flag name for MO_DLLIMPORT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341178 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 08:00:34 +00:00
Martin Storsjo 53f4571029 [MinGW] [X86] Pass true for the second parameter to StubValueTy for MO_COFFSTUB. NFC.
These stubs should never be emitted for internal symbols, and
nothing in AsmPrinter ever actually use this value when producing
the stubs for COFF anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341177 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 08:00:31 +00:00
Martin Storsjo d67818ff54 [MinGW] [ARM] Add stubs for potential automatic dllimported variables
The runtime pseudo relocations can't handle the ARM format embedded
addresses in movw/movt pairs. By using stubs, the potentially
dllimported addresses can be touched up by the runtime pseudo relocation
framework.

Differential Revision: https://reviews.llvm.org/D51450

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341176 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 08:00:25 +00:00
Craig Topper 8f80157cb0 [X86] Don't do anything in ReplaceNodeResults for (v2i32 (fptoui/fptosi v2f32)) when -x86-experimental-vector-widening-legalization is on.
We don't need to do our own widening, the generic legalizer can do it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341174 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 07:05:39 +00:00
Craig Topper 0c8291951d [X86] Don't custom widen (v2i32 (setcc v2f32)) when -x86-experimental-vector-widening-legalization is in effect.
We aren't doing anything than what the generic legalizer will do so just let it do it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341172 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 07:05:37 +00:00
Matt Arsenault c8c005cb52 AMDGPU: Stop forcing internalize at -O0
This doesn't really matter if clang is always emitting
the visibility as hidden by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341168 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 06:02:36 +00:00
Matt Arsenault 7e212e4168 AMDGPU: Remove remnants of old address space mapping
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341165 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-31 05:49:54 +00:00
Krzysztof Parzyszek 07df95450a [Hexagon] Check validity of register class when generating bitsplit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341137 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-30 22:26:43 +00:00
Eli Friedman da01ae3cf2 [ARM] Enable GEP offset splitting for 32-bit ARM.
It has essentially the same benefit it has on 64-bit ARM: it
substantially reduces the number of constants used by large GEP
operations. Seems to be generally helpful across a few different
codebases I've tried.

Differential Revision: https://reviews.llvm.org/D51462



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341136 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-30 22:18:27 +00:00
Thomas Lively 0246068b05 [WebAssembly] Update utility functions with SIMD types
Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D51516

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341131 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-30 22:10:43 +00:00
Thomas Lively 9f6fab911b [WebAssembly] Vector conversions
Summary:
Lowers away bitconverts between vector types. This CL depends
on D51383.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D51498

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341128 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-30 21:43:51 +00:00