diff options
author | Scott Michel <scottm@aero.org> | 2009-01-06 03:36:14 +0000 |
---|---|---|
committer | Scott Michel <scottm@aero.org> | 2009-01-06 03:36:14 +0000 |
commit | 6887caf11c6f4fecb90cb6a30694176a5a9c7bca (patch) | |
tree | b066441af2bed5a4c20ddde3b22528b099c50e98 /llvm/lib/Target/CellSPU/SPUInstrInfo.cpp | |
parent | e5e454e199949dc91332584366b00230a18460a2 (diff) | |
download | bcm5719-llvm-6887caf11c6f4fecb90cb6a30694176a5a9c7bca.tar.gz bcm5719-llvm-6887caf11c6f4fecb90cb6a30694176a5a9c7bca.zip |
CellSPU:
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we
need to ensure that i128 is 16-byte aligned in real life), and 128 zero-
extends are supported.
- New td file: SPU128InstrInfo.td: this is where all new i128 support should
be put in the future.
- Continue to hammer on i64 operations and test cases; ensure that the only
remaining problem will be i64 mul.
llvm-svn: 61784
Diffstat (limited to 'llvm/lib/Target/CellSPU/SPUInstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/CellSPU/SPUInstrInfo.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp b/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp index d88b2e9e82f..06ad50762f7 100644 --- a/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp +++ b/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp @@ -130,7 +130,32 @@ SPUInstrInfo::isMoveInstr(const MachineInstr& MI, case SPU::ORi32_v4i32: case SPU::ORi64_v2i64: case SPU::ORf32_v4f32: - case SPU::ORf64_v2f64: { + case SPU::ORf64_v2f64: + case SPU::ORi128_r64: + case SPU::ORi128_f64: + case SPU::ORi128_r32: + case SPU::ORi128_f32: + case SPU::ORi128_r16: + case SPU::ORi128_r8: + case SPU::ORi128_vec: + case SPU::ORr64_i128: + case SPU::ORf64_i128: + case SPU::ORr32_i128: + case SPU::ORf32_i128: + case SPU::ORr16_i128: + case SPU::ORr8_i128: + case SPU::ORvec_i128: + case SPU::ORr16_r32: + case SPU::ORr8_r32: + case SPU::ORr32_r16: + case SPU::ORr32_r8: + case SPU::ORr32_r64: + case SPU::ORr16_r64: + case SPU::ORr8_r64: + case SPU::ORr64_r32: + case SPU::ORr64_r16: + case SPU::ORr64_r8: + { assert(MI.getNumOperands() == 2 && MI.getOperand(0).isReg() && MI.getOperand(1).isReg() && |