- Dec 16, 2013
-
-
Elena Demikhovsky authored
Added scalar compare VCMPSS, VCMPSD. Implemented LowerSELECT for scalar FP operations. I replaced FSETCCss, FSETCCsd with one node type FSETCCs. Node extract_vector_elt(v16i1/v8i1, idx) returns an element of type i1. llvm-svn: 197384
-
Evgeniy Stepanov authored
llvm-svn: 197366
-
Hao Liu authored
Currently we have such types as legal vector types. The DAG combiner may generate some DAG nodes having such types but we don't have patterns to match them. E.g. a load i32 and a bitcast i32 to v1i32 will be combined into a load v1i32: bitcast (load i32) to v1i32 -> load v1i32. So this patch fixes such problems for load/dup instructions. If v1i8/v1i16/v1i32 are not legal any more, the code in this patch can be deleted. So I also add some FIXME. llvm-svn: 197361
-
Reed Kotler authored
that follows). llvm-svn: 197358
-
Reed Kotler authored
llvm-svn: 197357
-
- Dec 15, 2013
-
-
Reed Kotler authored
part of a multi-line pseudo which worked around a linker bug for mips16. llvm-svn: 197356
-
Reed Kotler authored
Some tiny cosmetic code changes to follow. Because of the wide ranging nature of the patch a full 24 test cycle was needed to check against regression. This was the smallest patch I could make to progress from the earlier ones in the series. llvm-svn: 197350
-
Joerg Sonnenberger authored
llvm-svn: 197348
-
Joerg Sonnenberger authored
llvm-svn: 197332
-
- Dec 14, 2013
-
-
Matt Arsenault authored
llvm-svn: 197327
-
Iain Sandoe authored
This is a base implementation of the powerpc-apple-darwin asm parser dialect. * Enables infrastructure (essentially isDarwin()) and fixes up the parsing of asm directives to separate out ELF and MachO/Darwin additions. * Enables parsing of {r,f,v}XX as register identifiers. * Enables parsing of lo16() hi16() and ha16() as modifiers. The changes to the test case are from David Fang (fangism). llvm-svn: 197324
-
Juergen Ributzka authored
llvm-svn: 197316
-
Rafael Espindola authored
No functionality change. llvm-svn: 197312
-
Rafael Espindola authored
No functionality change. llvm-svn: 197311
-
Rafael Espindola authored
No functionality change. llvm-svn: 197310
-
- Dec 13, 2013
-
-
Kevin Enderby authored
were falling into the cases for 24-bit branch kinds which are not 24-bit branches. The routine is to return false for fixups are expected to always be resolvable at assembly time. Which these three fixups are as they have limited displacement and are for local references within a function. rdar://15586725 llvm-svn: 197282
-
Chad Rosier authored
step, floating-point reciprocal square root step, floating-point absolute difference, and integer/floating-point compare instructions. Also, move the scalar general arithmetic operation patterns closer to similar code. No functional change intended. llvm-svn: 197250
-
Rafael Espindola authored
llvm-svn: 197249
-
Rafael Espindola authored
The cpp backend is not a reasonable fallback for a missing target. It is a very special backend, so it is reasonable to use it only if explicitly requested. While at it, simplify the interface a bit. llvm-svn: 197241
-
Richard Sandiford authored
In those cases it's better to compare the result of the subtraction against zero. llvm-svn: 197239
-
Richard Sandiford authored
This originally came about after noticing that InstCombine turns some of the TMHH (icmp (and...), ...) tests into plain comparisons. Since there is no instruction to compare with a 64-bit immediate, TMHH is generally better than an ordered comparison for the cases that it can handle. llvm-svn: 197238
-
Iain Sandoe authored
Amend a comment. llvm-svn: 197237
-
Richard Sandiford authored
This patch makes more use of LPGFR and LNGFR. It builds on top of the LTGFR selection from r197234. Most of the tests are motivated by what InstCombine would produce. llvm-svn: 197236
-
Richard Sandiford authored
...in an attempt to rein back the increasingly complex selection code. A knock-on effect is that ICmpType is exposed from the outset, which slightly simplifies adjustSubwordCmp. The code is no piece of art even after this change, but at least it should be slightly better. No behavioral change intended. llvm-svn: 197235
-
Richard Sandiford authored
InstCombine turns (sext (trunc)) into (ashr (shl)), then converts any comparison of the ashr against zero into a comparison of the shl against zero. This makes sense in itself, but we want to undo it for z, since the sign- extension instruction has a CC-setting form. I've included tests for both the original and InstCombined variants, but the former already worked. The patch fixes the latter. llvm-svn: 197234
-
Benjamin Kramer authored
While it's safe for the X86-specific shift nodes, dag combining will kill generic nodes. Insert an AND to make it safe, isel will nuke it as x86's shift instructions have an implicit AND. Fixes PR16108, which contains a contraption to hit this case in between constant folders. llvm-svn: 197228
-
Joerg Sonnenberger authored
with a temporary assertion and adjust the various test cases. llvm-svn: 197224
-
Matheus Almeida authored
branch instructions for mips and micromips instruction sets thus avoiding the situation of generating branches to undesired locations if offsets cannot be encoded. This patch also checks if a fixup cannot be applied and returns a fatal error if that's the case. llvm-svn: 197223
-
Kai Nacke authored
Since gcc 4.6 the compiler uses ___chkstk_ms which has the same semantics as the MS CRT function __chkstk. This simplifies the prologue generation a bit. Reviewed by Rafael Espíndola. llvm-svn: 197205
-
- Dec 12, 2013
-
-
Rafael Espindola authored
No functionality change. Reviewed by Tim Northover. llvm-svn: 197172
-
Rafael Espindola authored
Reviewed by Richard Sandiford. llvm-svn: 197170
-
Rafael Espindola authored
It means exactly the same and is just a bit shorter. llvm-svn: 197169
-
Rafael Espindola authored
GCC 4.7 changed the MingW ABI. On the LLVM side it means that sret functions don't pop the stack. llvm-svn: 197163
-
Chad Rosier authored
- Copy patterns with float/double types are enough. - Fix typos in test case names that were using v1fx. - There is no ACLE intrinsic that uses v1f32 type. And there is no conflict of neon and non-neon ovelapped operations with this type, so there is no need to support operations with this type. - Remove v1f32 from FPR32 register and disallow v1f32 as a legal type for operations. Patch by Ana Pazos! llvm-svn: 197159
-
Andrea Di Biagio authored
a vector packed single/double fp operation followed by a vector insert. The effect is that the backend coverts the packed fp instruction followed by a vectro insert into a SSE or AVX scalar fp instruction. For example, given the following code: __m128 foo(__m128 A, __m128 B) { __m128 C = A + B; return (__m128) {c[0], a[1], a[2], a[3]}; } previously we generated: addps %xmm0, %xmm1 movss %xmm1, %xmm0 we now generate: addss %xmm1, %xmm0 llvm-svn: 197145
-
Gabor Greif authored
llvm-svn: 197136
-
Hao Liu authored
[AArch64]Fix the problem that AArch64 backend fails to select scalar_to_vector of vector types having more than one element. llvm-svn: 197135
-
Reed Kotler authored
I don't know why this did not show up earlier. This code has been around for ages. llvm-svn: 197119
-
Yi Jiang authored
llvm-svn: 197109
-
Hal Finkel authored
llvm-svn: 197100
-