CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
829 lines
19 KiB
YAML
829 lines
19 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
|
|
# RUN: llc -o - %s -mtriple=riscv64 -run-pass=machine-cp -mcp-use-is-copy-instr | FileCheck %s
|
|
|
|
# Check that instruction simplifications expected to be performed after
|
|
# machine copy propagation are done.
|
|
|
|
---
|
|
name: add1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: add1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = ADD renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: add2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: add2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = ADD $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: or1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: or1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = OR renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: or2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: or2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = OR $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: xor1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: xor1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = XOR renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: xor2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: xor2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = XOR $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
---
|
|
name: xor3
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: xor3
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = XOR renamable $x11, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: addw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: addw1
|
|
; CHECK: renamable $x10 = ADDIW $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ADDW renamable $x11, $x12
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: addw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: addw2
|
|
; CHECK: renamable $x10 = ADDIW $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ADDW $x12, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sub
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sub
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SUB renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: subw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: subw
|
|
; CHECK: renamable $x10 = ADDIW $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SUBW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh1add1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh1add1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH1ADD $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh1add2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh1add2
|
|
; CHECK: renamable $x10 = SLLI $x12, 1
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH1ADD renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh1add.uw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh1add.uw1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH1ADD_UW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh1add.uw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh1add.uw2
|
|
; CHECK: renamable $x10 = SLLI_UW $x12, 1
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH1ADD_UW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh2add1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh2add1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH2ADD $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh2add2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh2add2
|
|
; CHECK: renamable $x10 = SLLI $x12, 2
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH2ADD renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh2add.uw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh2add.uw1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH2ADD_UW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh2add.uw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh2add.uw2
|
|
; CHECK: renamable $x10 = SLLI_UW $x12, 2
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH2ADD_UW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh3add1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh3add1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH3ADD $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh3add2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh3add2
|
|
; CHECK: renamable $x10 = SLLI $x12, 3
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH3ADD renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh3add.uw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh3add.uw1
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH3ADD_UW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sh3add.uw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sh3add.uw2
|
|
; CHECK: renamable $x10 = SLLI_UW $x12, 3
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SH3ADD_UW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: andi
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: andi
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ANDI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: and1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: and1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = AND renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: and2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: and2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = AND $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mul1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mul1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MUL renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mul2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mul2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MUL $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulh1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulh1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULH renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulh2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulh2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULH $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulhsu1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulhsu1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULHSU renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulhsu2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulhsu2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULHSU $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulhu1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulhu1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULHU renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulhu2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulhu2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULHU $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulw1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: mulw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: mulw2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MULW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: slli
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: slli
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLLI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: srli
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: srli
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SRLI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: srai
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: srai
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SRAI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: slliw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: slliw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLLIW renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: srliw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: srliw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SRLIW renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sraiw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sraiw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SRAIW renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: slli_uw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: slli_uw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLLI_UW renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: ori
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: ori
|
|
; CHECK: renamable $x10 = ADDI $x0, 13
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ORI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: xori
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: xori
|
|
; CHECK: renamable $x10 = ADDI $x0, 13
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = XORI renamable $x11, 13
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sltiu1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sltiu1
|
|
; CHECK: renamable $x10 = ADDI $x0, 1
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLTIU renamable $x11, 2
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sltiu2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sltiu2
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLTIU renamable $x11, 0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sltu
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sltu
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLTU renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: add.uw1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: add.uw1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ADD_UW renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: add.uw2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: add.uw2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = ADD_UW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sext.h
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sext.h
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SEXT_H renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sext.b
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sext.b
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SEXT_B renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: zext.h.rv32
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: zext.h.rv32
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ZEXT_H_RV32 renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: zext.h.rv64
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: zext.h.rv64
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = ZEXT_H_RV64 renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sll1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sll1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SLL $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sll2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sll2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SLL renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sr11
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sr11
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRL $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sr12
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sr12
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRL renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sra1
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sra1
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRA $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sra2
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sra2
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRA renamable $x11, $x0
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sllw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sllw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SLLW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: srlw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: srlw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRLW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: sraw
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: sraw
|
|
; CHECK: renamable $x10 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = SRAW $x0, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: min
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: min
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MIN renamable $x11, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: minu
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: minu
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MINU renamable $x11, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: max
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: max
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MAX renamable $x11, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: maxu
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: maxu
|
|
; CHECK: renamable $x10 = ADDI $x12, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x10
|
|
renamable $x11 = COPY $x12
|
|
renamable $x10 = MAXU renamable $x11, renamable $x11
|
|
PseudoRET implicit $x10
|
|
...
|
|
---
|
|
name: multipass
|
|
body: |
|
|
bb.0:
|
|
; CHECK-LABEL: name: multipass
|
|
; CHECK: renamable $x9 = ADDI $x0, 0
|
|
; CHECK-NEXT: PseudoRET implicit $x9
|
|
renamable $x11 = COPY $x0
|
|
renamable $x10 = SLLI renamable $x11, 13
|
|
renamable $x9 = SRLI renamable $x10, 13
|
|
PseudoRET implicit $x9
|
|
...
|
|
---
|
|
name: beq
|
|
body: |
|
|
; CHECK-LABEL: name: beq
|
|
; CHECK: bb.0:
|
|
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: renamable $x11 = COPY $x12
|
|
; CHECK-NEXT: BEQ $x12, $x0, %bb.1
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1:
|
|
; CHECK-NEXT: PseudoRET
|
|
bb.0:
|
|
renamable $x11 = COPY $x12
|
|
BEQ $x0, renamable $x11, %bb.1
|
|
bb.1:
|
|
PseudoRET
|
|
...
|
|
---
|
|
name: bne
|
|
body: |
|
|
; CHECK-LABEL: name: bne
|
|
; CHECK: bb.0:
|
|
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: renamable $x11 = COPY $x12
|
|
; CHECK-NEXT: BNE $x12, $x0, %bb.1
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1:
|
|
; CHECK-NEXT: PseudoRET
|
|
bb.0:
|
|
renamable $x11 = COPY $x12
|
|
BNE $x0, renamable $x11, %bb.1
|
|
bb.1:
|
|
PseudoRET
|
|
...
|
|
---
|
|
name: bltu
|
|
body: |
|
|
; CHECK-LABEL: name: bltu
|
|
; CHECK: bb.0:
|
|
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: renamable $x11 = COPY $x12
|
|
; CHECK-NEXT: BNE $x12, $x0, %bb.1
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1:
|
|
; CHECK-NEXT: PseudoRET
|
|
bb.0:
|
|
renamable $x11 = COPY $x12
|
|
BLTU $x0, renamable $x11, %bb.1
|
|
bb.1:
|
|
PseudoRET
|
|
...
|
|
---
|
|
name: bgeu
|
|
body: |
|
|
; CHECK-LABEL: name: bgeu
|
|
; CHECK: bb.0:
|
|
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: renamable $x11 = COPY $x12
|
|
; CHECK-NEXT: BEQ $x12, $x0, %bb.1
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1:
|
|
; CHECK-NEXT: PseudoRET
|
|
bb.0:
|
|
renamable $x11 = COPY $x12
|
|
BGEU $x0, renamable $x11, %bb.1
|
|
bb.1:
|
|
PseudoRET
|
|
...
|