Changes in directory llvm/lib/Target/IA64:
IA64InstrInfo.td updated: 1.28 -> 1.29 --- Log message: add FP select. next up - divide! --- Diffs of the changes: (+5 -3) IA64InstrInfo.td | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) Index: llvm/lib/Target/IA64/IA64InstrInfo.td diff -u llvm/lib/Target/IA64/IA64InstrInfo.td:1.28 llvm/lib/Target/IA64/IA64InstrInfo.td:1.29 --- llvm/lib/Target/IA64/IA64InstrInfo.td:1.28 Thu Nov 3 18:57:56 2005 +++ llvm/lib/Target/IA64/IA64InstrInfo.td Sun Nov 13 19:17:30 2005 @@ -388,6 +388,8 @@ [(set GR:$dst, (sra GR:$src1, GR:$src2))]>; def MOV : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src), "mov $dst = $src;;">; +def FMOV : AForm<0x03, 0x0b, (ops FP:$dst, FP:$src), + "mov $dst = $src;;">; // XXX: there _is_ no fmov def PMOV : AForm<0x03, 0x0b, (ops GR:$dst, GR:$src, PR:$qp), "($qp) mov $dst = $src;;">; @@ -409,9 +411,11 @@ "($qp) mov $dst = $src;;">; } -// TODO: select FPs, bools +// TODO: select bools def SELECTINT : Pat<(select PR:$which, GR:$src1, GR:$src2), (CMOV (MOV GR:$src2), GR:$src1, PR:$which)>; // note order! +def SELECTFP : Pat<(select PR:$which, FP:$src1, FP:$src2), + (CFMOV (FMOV FP:$src2), FP:$src1, PR:$which)>; // note order! // load constants of various sizes // FIXME: prettyprint -ve constants def : Pat<(i64 immSExt14:$imm), (ADDS r0, immSExt14:$imm)>; @@ -549,8 +553,6 @@ def FMPY : AForm_DAG<0x03, 0x0b, (ops FP:$dst, FP:$src1, FP:$src2), "fmpy $dst = $src1, $src2;;", [(set FP:$dst, (fmul FP:$src1, FP:$src2))]>; -def FMOV : AForm<0x03, 0x0b, (ops FP:$dst, FP:$src), - "mov $dst = $src;;">; // XXX: there _is_ no fmov def FMA : AForm_DAG<0x03, 0x0b, (ops FP:$dst, FP:$src1, FP:$src2, FP:$src3), "fma $dst = $src1, $src2, $src3;;", [(set FP:$dst, (fadd (fmul FP:$src1, FP:$src2), FP:$src3))]>; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits