| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple aarch64 -run-pass=aarch64-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s |
| |
| --- |
| name: add |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: add |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 42 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 40 |
| %b:_(s64) = G_CONSTANT i64 2 |
| %res:_(s64) = G_ADD %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: sub |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: sub |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 38 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 40 |
| %b:_(s64) = G_CONSTANT i64 2 |
| %res:_(s64) = G_SUB %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: mul |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: mul |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 80 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 40 |
| %b:_(s64) = G_CONSTANT i64 2 |
| %res:_(s64) = G_MUL %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: and |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: and |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 0 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 40 |
| %b:_(s64) = G_CONSTANT i64 2 |
| %res:_(s64) = G_AND %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: or |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: or |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 62 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 42 |
| %b:_(s64) = G_CONSTANT i64 22 |
| %res:_(s64) = G_OR %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: xor |
| alignment: 4 |
| legalized: true |
| liveins: |
| - { reg: '$w0' } |
| body: | |
| bb.1.entry: |
| liveins: $x0 |
| |
| ; CHECK-LABEL: name: xor |
| ; CHECK: liveins: $x0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_CONSTANT i64 12 |
| ; CHECK-NEXT: $x0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $x0 |
| %a:_(s64) = G_CONSTANT i64 8 |
| %b:_(s64) = G_CONSTANT i64 4 |
| %res:_(s64) = G_XOR %a, %b |
| $x0 = COPY %res(s64) |
| RET_ReallyLR implicit $x0 |
| |
| ... |
| --- |
| name: fadd |
| legalized: true |
| liveins: |
| - { reg: '$d0' } |
| body: | |
| bb.1.entry: |
| liveins: $d0 |
| |
| ; CHECK-LABEL: name: fadd |
| ; CHECK: liveins: $d0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_FCONSTANT double 4.200000e+01 |
| ; CHECK-NEXT: $d0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $d0 |
| %a:_(s64) = G_FCONSTANT double 40.0 |
| %b:_(s64) = G_FCONSTANT double 2.0 |
| %res:_(s64) = G_FADD %a, %b |
| $d0 = COPY %res(s64) |
| RET_ReallyLR implicit $d0 |
| |
| ... |
| --- |
| name: fsub |
| legalized: true |
| liveins: |
| - { reg: '$d0' } |
| body: | |
| bb.1.entry: |
| liveins: $d0 |
| |
| ; CHECK-LABEL: name: fsub |
| ; CHECK: liveins: $d0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_FCONSTANT double 3.800000e+01 |
| ; CHECK-NEXT: $d0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $d0 |
| %a:_(s64) = G_FCONSTANT double 40.0 |
| %b:_(s64) = G_FCONSTANT double 2.0 |
| %res:_(s64) = G_FSUB %a, %b |
| $d0 = COPY %res(s64) |
| RET_ReallyLR implicit $d0 |
| |
| ... |
| --- |
| name: fmul |
| legalized: true |
| liveins: |
| - { reg: '$d0' } |
| body: | |
| bb.1.entry: |
| liveins: $d0 |
| |
| ; CHECK-LABEL: name: fmul |
| ; CHECK: liveins: $d0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_FCONSTANT double 8.000000e+01 |
| ; CHECK-NEXT: $d0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $d0 |
| %a:_(s64) = G_FCONSTANT double 40.0 |
| %b:_(s64) = G_FCONSTANT double 2.0 |
| %res:_(s64) = G_FMUL %a, %b |
| $d0 = COPY %res(s64) |
| RET_ReallyLR implicit $d0 |
| |
| ... |
| --- |
| name: fdiv |
| legalized: true |
| liveins: |
| - { reg: '$d0' } |
| body: | |
| bb.1.entry: |
| liveins: $d0 |
| |
| ; CHECK-LABEL: name: fdiv |
| ; CHECK: liveins: $d0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s64) = G_FCONSTANT double 2.000000e+01 |
| ; CHECK-NEXT: $d0 = COPY %res(s64) |
| ; CHECK-NEXT: RET_ReallyLR implicit $d0 |
| %a:_(s64) = G_FCONSTANT double 40.0 |
| %b:_(s64) = G_FCONSTANT double 2.0 |
| %res:_(s64) = G_FDIV %a, %b |
| $d0 = COPY %res(s64) |
| RET_ReallyLR implicit $d0 |
| |
| ... |
| --- |
| name: fadd32 |
| legalized: true |
| liveins: |
| - { reg: '$s0' } |
| body: | |
| bb.1.entry: |
| liveins: $s0 |
| |
| ; CHECK-LABEL: name: fadd32 |
| ; CHECK: liveins: $s0 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: %res:_(s32) = G_FCONSTANT float 4.200000e+01 |
| ; CHECK-NEXT: $s0 = COPY %res(s32) |
| ; CHECK-NEXT: RET_ReallyLR implicit $s0 |
| %a:_(s32) = G_FCONSTANT float 40.0 |
| %b:_(s32) = G_FCONSTANT float 2.0 |
| %res:_(s32) = G_FADD %a, %b |
| $s0 = COPY %res(s32) |
| RET_ReallyLR implicit $s0 |
| |
| ... |