# 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 ...