blob: c944889ede6954648a27bd7f3d6c8045fb85b257 [file] [log] [blame]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass machine-combiner -verify-machineinstrs -o - %s | FileCheck %s
---
name: madd_addwi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $w0, $w1
; CHECK-LABEL: name: madd_addwi
; CHECK: liveins: $w0, $w1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
; CHECK-NEXT: [[MOVi32imm:%[0-9]+]]:gpr32 = nsw MOVi32imm 79
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32common = nsw MADDWrrr [[COPY1]], [[COPY]], [[MOVi32imm]]
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $w0
%0:gpr32 = COPY $w0
%1:gpr32 = COPY $w1
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
%3:gpr32sp = nsw ADDWri killed %2:gpr32common, 79, 0
$w0 = COPY %3:gpr32sp
RET_ReallyLR implicit $w0
...
---
name: madd_addxi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $x0, $x1
; CHECK-LABEL: name: madd_addxi
; CHECK: liveins: $x0, $x1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
; CHECK-NEXT: [[MOVi64imm:%[0-9]+]]:gpr64 = nsw MOVi64imm 79
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64common = nsw MADDXrrr [[COPY1]], [[COPY]], [[MOVi64imm]]
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:gpr64 = COPY $x0
%1:gpr64 = COPY $x1
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
%3:gpr64sp = nsw ADDXri killed %2:gpr64common, 79, 0
$x0 = COPY %3:gpr64sp
RET_ReallyLR implicit $x0
...
---
name: madd_subwi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $w0, $w1
; CHECK-LABEL: name: madd_subwi
; CHECK: liveins: $w0, $w1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
; CHECK-NEXT: [[MOVi32imm:%[0-9]+]]:gpr32 = nsw MOVi32imm -1
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32 = nsw MADDWrrr [[COPY1]], [[COPY]], [[MOVi32imm]]
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $w0
%0:gpr32 = COPY $w0
%1:gpr32 = COPY $w1
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
%3:gpr32 = nsw SUBSWri killed %2:gpr32common, 1, 0, implicit-def dead $nzcv
$w0 = COPY %3:gpr32
RET_ReallyLR implicit $w0
...
---
name: madd_subxi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $x0, $x1
; CHECK-LABEL: name: madd_subxi
; CHECK: liveins: $x0, $x1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
; CHECK-NEXT: [[MOVi64imm:%[0-9]+]]:gpr64 = nsw MOVi64imm -1
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64 = nsw MADDXrrr [[COPY1]], [[COPY]], [[MOVi64imm]]
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:gpr64 = COPY $x0
%1:gpr64 = COPY $x1
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
%3:gpr64 = nsw SUBSXri killed %2:gpr64common, 1, 0, implicit-def dead $nzcv
$x0 = COPY %3:gpr64
RET_ReallyLR implicit $x0
...
---
name: madd_addorwi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $w0, $w1
; CHECK-LABEL: name: madd_addorwi
; CHECK: liveins: $w0, $w1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
; CHECK-NEXT: [[MOVi32imm:%[0-9]+]]:gpr32 = nsw MOVi32imm 16773120
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32common = nsw MADDWrrr [[COPY1]], [[COPY]], [[MOVi32imm]]
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $w0
%0:gpr32 = COPY $w0
%1:gpr32 = COPY $w1
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
%3:gpr32sp = nsw ADDWri killed %2:gpr32common, 4095, 12
$w0 = COPY %3:gpr32sp
RET_ReallyLR implicit $w0
...
---
name: madd_addorxi
alignment: 4
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: $x0, $x1
; CHECK-LABEL: name: madd_addorxi
; CHECK: liveins: $x0, $x1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
; CHECK-NEXT: [[MOVi64imm:%[0-9]+]]:gpr64 = nsw MOVi64imm 16773120
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64common = nsw MADDXrrr [[COPY1]], [[COPY]], [[MOVi64imm]]
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:gpr64 = COPY $x0
%1:gpr64 = COPY $x1
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
%3:gpr64sp = nsw ADDXri killed %2:gpr64common, 4095, 12
$x0 = COPY %3:gpr64sp
RET_ReallyLR implicit $x0
...