parent
f07c7941f0
commit
9362d9aa76
|
|
@ -340,6 +340,21 @@ def MOV64rmm : Pseudo<(outs GR64:$from, GR64:$to), (ins riaddr:$dst),
|
|||
//===----------------------------------------------------------------------===//
|
||||
// Arithmetic Instructions
|
||||
|
||||
let Defs = [PSW] in {
|
||||
def NEG32rr : Pseudo<(outs GR32:$dst), (ins GR32:$src),
|
||||
"lcr\t{$dst, $src}",
|
||||
[(set GR32:$dst, (ineg GR32:$src)),
|
||||
(implicit PSW)]>;
|
||||
def NEG64rr : Pseudo<(outs GR64:$dst), (ins GR64:$src),
|
||||
"lcgr\t{$dst, $src}",
|
||||
[(set GR64:$dst, (ineg GR64:$src)),
|
||||
(implicit PSW)]>;
|
||||
def NEG64rr32 : Pseudo<(outs GR64:$dst), (ins GR32:$src),
|
||||
"lcgfr\t{$dst, $src}",
|
||||
[(set GR64:$dst, (ineg (sext GR32:$src))),
|
||||
(implicit PSW)]>;
|
||||
}
|
||||
|
||||
let isTwoAddress = 1 in {
|
||||
|
||||
let Defs = [PSW] in {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
; RUN: llvm-as < %s | llc -march=systemz | grep lcgr | count 1
|
||||
|
||||
define i64 @foo(i64 %a) {
|
||||
entry:
|
||||
%c = sub i64 0, %a
|
||||
ret i64 %c
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
; RUN: llvm-as < %s | llc -march=systemz | grep lcr | count 1
|
||||
|
||||
define i32 @foo(i32 %a) {
|
||||
entry:
|
||||
%c = sub i32 0, %a
|
||||
ret i32 %c
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue