1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple aarch64 -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s 3 4name: pat1 5tracksRegLiveness: true 6body: | 7 bb.0: 8 liveins: $x0, $x1 9 ; Fold ((0-A) + B) -> B - A 10 ; CHECK-LABEL: name: pat1 11 ; CHECK: liveins: $x0, $x1 12 ; CHECK: %copy1:_(s64) = COPY $x0 13 ; CHECK: %copy2:_(s64) = COPY $x1 14 ; CHECK: %add:_(s64) = G_SUB %copy2, %copy1 15 ; CHECK: $x0 = COPY %add(s64) 16 ; CHECK: RET_ReallyLR implicit $x0 17 %copy1:_(s64) = COPY $x0 18 %copy2:_(s64) = COPY $x1 19 %zero:_(s64) = G_CONSTANT i64 0 20 %sub:_(s64) = G_SUB %zero, %copy1 21 %add:_(s64) = G_ADD %sub, %copy2 22 $x0 = COPY %add(s64) 23 RET_ReallyLR implicit $x0 24 25... 26--- 27name: pat2 28tracksRegLiveness: true 29body: | 30 bb.0: 31 liveins: $x0, $x1 32 ; Fold (A + (0-B)) -> A - B 33 ; CHECK-LABEL: name: pat2 34 ; CHECK: liveins: $x0, $x1 35 ; CHECK: %copy1:_(s64) = COPY $x0 36 ; CHECK: %copy2:_(s64) = COPY $x1 37 ; CHECK: %add:_(s64) = G_SUB %copy1, %copy2 38 ; CHECK: $x0 = COPY %add(s64) 39 ; CHECK: RET_ReallyLR implicit $x0 40 %copy1:_(s64) = COPY $x0 41 %copy2:_(s64) = COPY $x1 42 %zero:_(s64) = G_CONSTANT i64 0 43 %sub:_(s64) = G_SUB %zero, %copy2 44 %add:_(s64) = G_ADD %copy1, %sub 45 $x0 = COPY %add(s64) 46 RET_ReallyLR implicit $x0 47 48... 49