- Nov 04, 2013
-
-
Zoran Jovanovic authored
llvm-svn: 193992
-
- Oct 30, 2013
-
-
Hans Wennborg authored
Fixing this Windows build error: ..\lib\Target\Mips\MipsSEISelLowering.cpp(997) : error C2027: use of undefined type 'llvm::raw_ostream' llvm-svn: 193696
-
Daniel Sanders authored
llvm-svn: 193695
-
Daniel Sanders authored
[mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal IR (i.e. not intrinsics) Also corrected the definition of the intrinsics for these instructions (the result register is also the first operand), and added intrinsics for bsel and bseli to clang (they already existed in the backend). These four operations are mostly equivalent to bsel, and bseli (the difference is which operand is tied to the result). As a result some of the tests changed as described below. bitwise.ll: - bsel.v test adapted so that the mask is unknown at compile-time. This stops it emitting bmnzi.b instead of the intended bsel.v. - The bseli.b test now tests the right thing. Namely the case when one of the values is an uimm8, rather than when the condition is a uimm8 (which is covered by bmnzi.b) compare.ll: - bsel.v tests now (correctly) emits bmnz.v instead of bsel.v because this is the same operation (see MSA.txt). i8.ll - CHECK-DAG-ized test. - bmzi.b test now (correctly) emits equivalent bmnzi.b with swapped operands because this is the same operation (see MSA.txt). - bseli.b still emits bseli.b though because the immediate makes it distinguishable from bmnzi.b. vec.ll: - CHECK-DAG-ized test. - bmz.v tests now (correctly) emits bmnz.v with swapped operands (see MSA.txt). - bsel.v tests now (correctly) emits bmnz.v with swapped operands (see MSA.txt). llvm-svn: 193693
-
Daniel Sanders authored
This required correcting the definition of the bins[lr]i intrinsics because the result is also the first operand. It also required removing the (arbitrary) check for 32-bit immediates in MipsSEDAGToDAGISel::selectVSplat(). Currently using binsli.d with 2 bits set in the mask doesn't select binsli.d because the constant is legalized into a ConstantPool. Similar things can happen with binsri.d with more than 10 bits set in the mask. The resulting code when this happens is correct but not optimal. llvm-svn: 193687
-
Daniel Sanders authored
(or (and $a, $mask), (and $b, $inverse_mask)) => (vselect $mask, $a, $b). where $mask is a constant splat. This allows bitwise operations to make use of bsel. It's also a stepping stone towards matching bins[lr], and bins[lr]i from normal IR. Two sets of similar tests have been added in this commit. The bsel_* functions test the case where binsri cannot be used. The binsr_*_i functions will start to use the binsri instruction in the next commit. llvm-svn: 193682
-
Daniel Sanders authored
No test since -debug output is intended for developers and not end-users. llvm-svn: 193681
-
Daniel Sanders authored
splat.d is implemented but this subtest is currently disabled. This is because it is difficult to match the appropriate IR on MIPS32. There is a patch under review that should help with this so I hope to enable the subtest soon. llvm-svn: 193680
-
Akira Hatanaka authored
llvm-svn: 193673
-
- Oct 29, 2013
-
-
Akira Hatanaka authored
llvm-svn: 193641
-
Rafael Espindola authored
llvm-svn: 193627
-
Zoran Jovanovic authored
llvm-svn: 193623
-
Rafael Espindola authored
llvm-svn: 193618
-
- Oct 28, 2013
-
-
Akira Hatanaka authored
No functionality change. llvm-svn: 193540
-
NAKAMURA Takumi authored
llvm-svn: 193512
-
NAKAMURA Takumi authored
llvm-svn: 193511
-
- Oct 27, 2013
-
-
Reed Kotler authored
Before I just ported the shell of the pass. I've tried to keep everything nearly identical to the ARM version. I think it will be very easy to eventually merge these two and create a new more general pass that other targets can use. I have some improvements I would like to make to allow pools to be shared across functions and some other things. When I'm all done we can think about making a more general pass. More to be ported but the basic mechanism works now almost as good as gcc mips16. llvm-svn: 193509
-
- Oct 23, 2013
-
-
Zoran Jovanovic authored
llvm-svn: 193247
-
Matheus Almeida authored
llvm-svn: 193240
-
Daniel Sanders authored
llvm-svn: 193239
-
- Oct 22, 2013
-
-
Matheus Almeida authored
These branches have a 16-bit offset (R_MIPS_PC16). List of conditional branch instructions: bnz.{b,h,w,d} bnz.v bz.{b,h,w,d} bz.v llvm-svn: 193157
-
- Oct 21, 2013
-
-
Matheus Almeida authored
llvm-svn: 193082
-
Matheus Almeida authored
llvm-svn: 193081
-
Matheus Almeida authored
llvm-svn: 193080
-
Matheus Almeida authored
These instructions are logically related as they allow read/write of MSA control registers. Currently MSA control registers are emitted by number but hopefully that will change as soon as GAS starts accepting them by name as that would make the assembly easier to read. llvm-svn: 193078
-
Matheus Almeida authored
llvm-svn: 193077
-
Matheus Almeida authored
The second parameter of the SLD intrinsic is the number of columns (GPR) to slide left the source array. llvm-svn: 193076
-
- Oct 17, 2013
-
-
Daniel Sanders authored
llvm-svn: 192895
-
Daniel Sanders authored
These were present in a previous version of the MSA spec but are not present in the published version. There is no hardware that uses these instructions. llvm-svn: 192888
-
Daniel Sanders authored
Define these three instructions in alphabetical order (like the rest of the file). No functional change. llvm-svn: 192880
-
- Oct 16, 2013
-
-
Rafael Espindola authored
We had a MCAsmInfoCOFF, but no common class for all the ELF MCAsmInfos before. llvm-svn: 192760
-
- Oct 15, 2013
-
-
Daniel Sanders authored
llvm-svn: 192699
-
Akira Hatanaka authored
parts of the accumulators and gets expanded post-RA. llvm-svn: 192667
-
Akira Hatanaka authored
of relying on AddedComplexity. llvm-svn: 192665
-
Akira Hatanaka authored
llvm-svn: 192663
-
Akira Hatanaka authored
llvm-svn: 192662
-
Akira Hatanaka authored
llvm-svn: 192661
-
Akira Hatanaka authored
llvm-svn: 192660
-
- Oct 14, 2013
-
-
Matheus Almeida authored
List of instructions: bclri.{b,h,w,d} binsli.{b,h,w,d} binsri.{b,h,w,d} bnegi.{b,h,w,d} bseti.{b,h,w,d} sat_s.{b,h,w,d} sat_u.{b,h,w,d} slli.{b,h,w,d} srai.{b,h,w,d} srari.{b,h,w,d} srli.{b,h,w,d} srlri.{b,h,w,d} llvm-svn: 192589
-
Matheus Almeida authored
List of instructions: and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v. llvm-svn: 192588
-