49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -mtriple aarch64 -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s
|
|
|
|
name: pat1
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
liveins: $x0, $x1
|
|
; Fold ((0-A) + B) -> B - A
|
|
; CHECK-LABEL: name: pat1
|
|
; CHECK: liveins: $x0, $x1
|
|
; CHECK: %copy1:_(s64) = COPY $x0
|
|
; CHECK: %copy2:_(s64) = COPY $x1
|
|
; CHECK: %add:_(s64) = G_SUB %copy2, %copy1
|
|
; CHECK: $x0 = COPY %add(s64)
|
|
; CHECK: RET_ReallyLR implicit $x0
|
|
%copy1:_(s64) = COPY $x0
|
|
%copy2:_(s64) = COPY $x1
|
|
%zero:_(s64) = G_CONSTANT i64 0
|
|
%sub:_(s64) = G_SUB %zero, %copy1
|
|
%add:_(s64) = G_ADD %sub, %copy2
|
|
$x0 = COPY %add(s64)
|
|
RET_ReallyLR implicit $x0
|
|
|
|
...
|
|
---
|
|
name: pat2
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
liveins: $x0, $x1
|
|
; Fold (A + (0-B)) -> A - B
|
|
; CHECK-LABEL: name: pat2
|
|
; CHECK: liveins: $x0, $x1
|
|
; CHECK: %copy1:_(s64) = COPY $x0
|
|
; CHECK: %copy2:_(s64) = COPY $x1
|
|
; CHECK: %add:_(s64) = G_SUB %copy1, %copy2
|
|
; CHECK: $x0 = COPY %add(s64)
|
|
; CHECK: RET_ReallyLR implicit $x0
|
|
%copy1:_(s64) = COPY $x0
|
|
%copy2:_(s64) = COPY $x1
|
|
%zero:_(s64) = G_CONSTANT i64 0
|
|
%sub:_(s64) = G_SUB %zero, %copy2
|
|
%add:_(s64) = G_ADD %copy1, %sub
|
|
$x0 = COPY %add(s64)
|
|
RET_ReallyLR implicit $x0
|
|
|
|
...
|