From: Anton Korobeynikov Date: Sat, 22 Aug 2009 11:46:16 +0000 (+0000) Subject: Some dummy cost model for s390x: X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=310ed1364185535949432bfd25a1aca3c5496f87;p=oota-llvm.git 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 --- diff --git a/lib/Target/SystemZ/SystemZInstrFormats.td b/lib/Target/SystemZ/SystemZInstrFormats.td index 81f704f9778..b4a8993c197 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 0cf706ed174..56d75ddfc0c 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),