AMDGPU: Fix verifier assert with out of bounds subregister indexes (#119799)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / itofp-rv32.mir
blobe4e9af7a0f6d8f02ce0359ccc6d0a0ed2e707ca3
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+d -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck %s
6 ---
7 name:            sitofp_s32_s32
8 legalized:       true
9 tracksRegLiveness: true
10 body:             |
11   bb.0:
12     liveins: $x10
14     ; CHECK-LABEL: name: sitofp_s32_s32
15     ; CHECK: liveins: $x10
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
18     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s32) = G_SITOFP [[COPY]](s32)
19     ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)
20     ; CHECK-NEXT: PseudoRET implicit $f10_f
21     %0:_(s32) = COPY $x10
22     %1:_(s32) = G_SITOFP %0(s32)
23     $f10_f = COPY %1(s32)
24     PseudoRET implicit $f10_f
26 ...
27 ---
28 name:            uitofp_s32_s32
29 legalized:       true
30 tracksRegLiveness: true
31 body:             |
32   bb.0:
33     liveins: $x10
35     ; CHECK-LABEL: name: uitofp_s32_s32
36     ; CHECK: liveins: $x10
37     ; CHECK-NEXT: {{  $}}
38     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
39     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s32) = G_UITOFP [[COPY]](s32)
40     ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)
41     ; CHECK-NEXT: PseudoRET implicit $f10_f
42     %0:_(s32) = COPY $x10
43     %1:_(s32) = G_UITOFP %0(s32)
44     $f10_f = COPY %1(s32)
45     PseudoRET implicit $f10_f
47 ...
48 ---
49 name:            sitofp_s64_s32
50 legalized:       true
51 tracksRegLiveness: true
52 body:             |
53   bb.0:
54     liveins: $x10
56     ; CHECK-LABEL: name: sitofp_s64_s32
57     ; CHECK: liveins: $x10
58     ; CHECK-NEXT: {{  $}}
59     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
60     ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fprb(s64) = G_SITOFP [[COPY]](s32)
61     ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)
62     ; CHECK-NEXT: PseudoRET implicit $f10_d
63     %0:_(s32) = COPY $x10
64     %1:_(s64) = G_SITOFP %0(s32)
65     $f10_d = COPY %1(s64)
66     PseudoRET implicit $f10_d
68 ...
69 ---
70 name:            uitofp_s64_s32
71 legalized:       true
72 tracksRegLiveness: true
73 body:             |
74   bb.0:
75     liveins: $x10
77     ; CHECK-LABEL: name: uitofp_s64_s32
78     ; CHECK: liveins: $x10
79     ; CHECK-NEXT: {{  $}}
80     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
81     ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fprb(s64) = G_UITOFP [[COPY]](s32)
82     ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)
83     ; CHECK-NEXT: PseudoRET implicit $f10_d
84     %0:_(s32) = COPY $x10
85     %1:_(s64) = G_UITOFP %0(s32)
86     $f10_d = COPY %1(s64)
87     PseudoRET implicit $f10_d
89 ...