From: Anton Korobeynikov Date: Thu, 16 Jul 2009 13:32:16 +0000 (+0000) Subject: Add sub reg-reg pattern X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bdc908169369dc2c0d7f56b665b627c47690b150;p=oota-llvm.git Add sub reg-reg pattern git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75916 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/SystemZ/SystemZInstrInfo.td b/lib/Target/SystemZ/SystemZInstrInfo.td index c4121fe604f..0b8ab46da4a 100644 --- a/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/lib/Target/SystemZ/SystemZInstrInfo.td @@ -77,6 +77,12 @@ def OR64rr : Pseudo<(outs GR64:$dst), (ins GR64:$src1, GR64:$src2), } // FIXME: provide patterns for masked or-with-imm +// FIXME: Provide proper encoding! +def SUB64rr : Pseudo<(outs GR64:$dst), (ins GR64:$src1, GR64:$src2), + "sgr\t{$dst, $src2}", + [(set GR64:$dst, (sub GR64:$src1, GR64:$src2))]>; + + let isCommutable = 1 in { // X = XOR Y, Z == X = XOR Z, Y // FIXME: Provide proper encoding! def XOR64rr : Pseudo<(outs GR64:$dst), (ins GR64:$src1, GR64:$src2), diff --git a/test/CodeGen/SystemZ/02-RetSub.ll b/test/CodeGen/SystemZ/02-RetSub.ll new file mode 100644 index 00000000000..16ade04cef0 --- /dev/null +++ b/test/CodeGen/SystemZ/02-RetSub.ll @@ -0,0 +1,7 @@ +; RUN: llvm-as < %s | llc + +define i64 @foo(i64 %a, i64 %b) { +entry: + %c = sub i64 %a, %b + ret i64 %c +} \ No newline at end of file diff --git a/test/CodeGen/SystemZ/02-RetSubImm.ll b/test/CodeGen/SystemZ/02-RetSubImm.ll new file mode 100644 index 00000000000..f90415f9ffd --- /dev/null +++ b/test/CodeGen/SystemZ/02-RetSubImm.ll @@ -0,0 +1,7 @@ +; RUN: llvm-as < %s | llc + +define i64 @foo(i64 %a, i64 %b) { +entry: + %c = sub i64 %a, 1 + ret i64 %c +} \ No newline at end of file