From 310ed1364185535949432bfd25a1aca3c5496f87 Mon Sep 17 00:00:00 2001 From: Anton Korobeynikov Date: Sat, 22 Aug 2009 11:46:16 +0000 Subject: Some dummy cost model for s390x: - Prefer short-imm instructions over ext-imm, when possible - Prefer Z10 instructions over Z9, when possible This hopefully should fix some dejagnu test fails on solaris git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79741 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/SystemZ/SystemZInstrFormats.td | 12 +++++++++--- lib/Target/SystemZ/SystemZInstrInfo.td | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'lib/Target') diff --git a/lib/Target/SystemZ/SystemZInstrFormats.td b/lib/Target/SystemZ/SystemZInstrFormats.td index 81f704f977..b4a8993c19 100644 --- a/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/lib/Target/SystemZ/SystemZInstrFormats.td @@ -94,19 +94,25 @@ class RREI op, dag outs, dag ins, string asmstr, list pattern> : I16; class RXI op, dag outs, dag ins, string asmstr, list pattern> - : I8; + : I8 { + let AddedComplexity = 1; +} class RXYI op, dag outs, dag ins, string asmstr, list pattern> : I16; class RSI op, dag outs, dag ins, string asmstr, list pattern> - : I8; + : I8 { + let AddedComplexity = 1; +} class RSYI op, dag outs, dag ins, string asmstr, list pattern> : I16; class SII op, dag outs, dag ins, string asmstr, list pattern> - : I8; + : I8 { + let AddedComplexity = 1; +} class SIYI op, dag outs, dag ins, string asmstr, list pattern> : I16; diff --git a/lib/Target/SystemZ/SystemZInstrInfo.td b/lib/Target/SystemZ/SystemZInstrInfo.td index 0cf706ed17..56d75ddfc0 100644 --- a/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/lib/Target/SystemZ/SystemZInstrInfo.td @@ -324,6 +324,7 @@ def MOV8miy : SIYI<0x52EB, "mviy\t{$dst, $src}", [(truncstorei8 (i32 i32immSExt8:$src), riaddr:$dst)]>; +let AddedComplexity = 2 in { def MOV16mi : SILI<0xE544, (outs), (ins riaddr12:$dst, s16imm:$src), "mvhhi\t{$dst, $src}", @@ -339,6 +340,7 @@ def MOV64mi16 : SILI<0xE548, "mvghi\t{$dst, $src}", [(store (i64 immSExt16:$src), riaddr12:$dst)]>, Requires<[IsZ10]>; +} // sexts def MOVSX32rr8 : RREI<0xB926, @@ -856,6 +858,7 @@ def MUL64ri16 : RII<0xA7D, "mghi\t{$dst, $src2}", [(set GR64:$dst, (mul GR64:$src1, immSExt16:$src2))]>; +let AddedComplexity = 2 in { def MUL32ri : RILI<0xC21, (outs GR32:$dst), (ins GR32:$src1, s32imm:$src2), "msfi\t{$dst, $src2}", @@ -866,6 +869,7 @@ def MUL64ri32 : RILI<0xC20, "msgfi\t{$dst, $src2}", [(set GR64:$dst, (mul GR64:$src1, i64immSExt32:$src2))]>, Requires<[IsZ10]>; +} def MUL32rm : RXI<0x71, (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2), -- cgit v1.2.3