[LoongArch] Implement COPY instruction between CFRs (#69300)
[platform/upstream/llvm.git] / llvm / test / CodeGen / LoongArch / cfr-copy.mir
1 # NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
2 # RUN: llc --mtriple=loongarch64 --mattr=+d %s -o - | FileCheck %s
3
4 ## Check the PseudoCopyCFR instruction expand.
5
6 --- |
7   target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128"
8   target triple = "loongarch64"
9
10   define void @test() {
11   ; CHECK-LABEL: test:
12   ; CHECK:       # %bb.0:
13   ; CHECK-NEXT:    fcmp.caf.s $fcc1, $fa0, $fa0
14   ; CHECK-NEXT:    bceqz $fcc0, .LBB0_2
15   ; CHECK-NEXT:  # %bb.1:
16   ; CHECK-NEXT:    fcmp.cueq.s $fcc1, $fa0, $fa0
17   ; CHECK-NEXT:  .LBB0_2:
18   ; CHECK-NEXT:    movcf2gr $a0, $fcc1
19   ; CHECK-NEXT:    ret
20     ret void
21   }
22 ...
23 ---
24 name: test
25 tracksRegLiveness: true
26 body:             |
27   bb.0:
28     liveins: $fcc0
29
30     $fcc1 = COPY $fcc0
31     $r4 = COPY $fcc1
32     PseudoRET implicit killed $r4
33
34 ...