[AArch64] Unroll some loops with early-continues on Apple Silicon. (#118499)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / legalize-fp-load-store.mir
blob5afc3df08690ed46405ab68829e6a20807f4d460
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+d -run-pass=legalizer %s -o - \
3 # RUN: | FileCheck %s
4 # RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=legalizer %s -o - \
5 # RUN: | FileCheck %s
7 ---
8 name:            fp_store_f32
9 body:             |
10   bb.1:
11     liveins: $x10, $f10_f
13     ; CHECK-LABEL: name: fp_store_f32
14     ; CHECK: liveins: $x10, $f10_f
15     ; CHECK-NEXT: {{  $}}
16     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
17     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $f10_f
18     ; CHECK-NEXT: G_STORE [[COPY1]](s32), [[COPY]](p0) :: (store (s32))
19     ; CHECK-NEXT: PseudoRET
20     %0:_(p0) = COPY $x10
21     %1:_(s32) = COPY $f10_f
22     G_STORE %1(s32), %0(p0) :: (store (s32))
23     PseudoRET
25 ...
26 ---
27 name:            fp_store_f64
28 body:             |
29   bb.1:
30     liveins: $x10, $f10_d
32     ; CHECK-LABEL: name: fp_store_f64
33     ; CHECK: liveins: $x10, $f10_d
34     ; CHECK-NEXT: {{  $}}
35     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
36     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $f10_d
37     ; CHECK-NEXT: G_STORE [[COPY1]](s64), [[COPY]](p0) :: (store (s64))
38     ; CHECK-NEXT: PseudoRET
39     %0:_(p0) = COPY $x10
40     %1:_(s64) = COPY $f10_d
41     G_STORE %1(s64), %0(p0) :: (store (s64))
42     PseudoRET
44 ...
45 ---
46 name:            fp_load_f32
47 body:             |
48   bb.1:
49     liveins: $x10, $f10_f
51     ; CHECK-LABEL: name: fp_load_f32
52     ; CHECK: liveins: $x10, $f10_f
53     ; CHECK-NEXT: {{  $}}
54     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
55     ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32))
56     ; CHECK-NEXT: $f10_f = COPY [[LOAD]](s32)
57     ; CHECK-NEXT: PseudoRET implicit $f10_f
58     %0:_(p0) = COPY $x10
59     %2:_(s32) = G_LOAD %0(p0) :: (load (s32))
60     $f10_f = COPY %2(s32)
61     PseudoRET implicit $f10_f
63 ...
64 ---
65 name:            fp_load_f64
66 body:             |
67   bb.1:
68     liveins: $x10, $f10_d
70     ; CHECK-LABEL: name: fp_load_f64
71     ; CHECK: liveins: $x10, $f10_d
72     ; CHECK-NEXT: {{  $}}
73     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
74     ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p0) :: (load (s64))
75     ; CHECK-NEXT: $f10_d = COPY [[LOAD]](s64)
76     ; CHECK-NEXT: PseudoRET implicit $f10_d
77     %0:_(p0) = COPY $x10
78     %2:_(s64) = G_LOAD %0(p0) :: (load (s64))
79     $f10_d = COPY %2(s64)
80     PseudoRET implicit $f10_d
82 ...