AMDGPU: Fix verifier assert with out of bounds subregister indexes (#119799)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / fp-ext-trunc-f16.mir
blob7758a640ac8600f5c271e7db18dd12d12362140f
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+d,zfh -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck %s
5 # RUN: llc -mtriple=riscv64 -mattr=+d,zfh -run-pass=regbankselect \
6 # RUN:   -simplify-mir -verify-machineinstrs %s \
7 # RUN:   -o - | FileCheck %s
9 ---
10 name:            fpext_f32
11 legalized:       true
12 tracksRegLiveness: true
13 body:             |
14   bb.1:
15     liveins: $f10_h
17     ; CHECK-LABEL: name: fpext_f32
18     ; CHECK: liveins: $f10_h
19     ; CHECK-NEXT: {{  $}}
20     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fprb(s16) = COPY $f10_h
21     ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:fprb(s32) = G_FPEXT [[COPY]](s16)
22     ; CHECK-NEXT: $f10_f = COPY [[FPEXT]](s32)
23     ; CHECK-NEXT: PseudoRET implicit $f10_f
24     %0:_(s16) = COPY $f10_h
25     %1:_(s32) = G_FPEXT %0(s16)
26     $f10_f = COPY %1(s32)
27     PseudoRET implicit $f10_f
29 ...
30 ---
31 name:            fptrunc_f32
32 legalized:       true
33 tracksRegLiveness: true
34 body:             |
35   bb.1:
36     liveins: $f10_f
38     ; CHECK-LABEL: name: fptrunc_f32
39     ; CHECK: liveins: $f10_f
40     ; CHECK-NEXT: {{  $}}
41     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fprb(s32) = COPY $f10_f
42     ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:fprb(s16) = G_FPTRUNC [[COPY]](s32)
43     ; CHECK-NEXT: $f10_h = COPY [[FPTRUNC]](s16)
44     ; CHECK-NEXT: PseudoRET implicit $f10_h
45     %0:_(s32) = COPY $f10_f
46     %1:_(s16) = G_FPTRUNC %0(s32)
47     $f10_h = COPY %1(s16)
48     PseudoRET implicit $f10_h
50 ...
51 ---
52 name:            fpext_f64
53 legalized:       true
54 tracksRegLiveness: true
55 body:             |
56   bb.1:
57     liveins: $f10_h
59     ; CHECK-LABEL: name: fpext_f64
60     ; CHECK: liveins: $f10_h
61     ; CHECK-NEXT: {{  $}}
62     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fprb(s16) = COPY $f10_h
63     ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:fprb(s64) = G_FPEXT [[COPY]](s16)
64     ; CHECK-NEXT: $f10_d = COPY [[FPEXT]](s64)
65     ; CHECK-NEXT: PseudoRET implicit $f10_d
66     %0:_(s16) = COPY $f10_h
67     %1:_(s64) = G_FPEXT %0(s16)
68     $f10_d = COPY %1(s64)
69     PseudoRET implicit $f10_d
71 ...
72 ---
73 name:            fptrunc_f64
74 legalized:       true
75 tracksRegLiveness: true
76 body:             |
77   bb.1:
78     liveins: $f10_d
80     ; CHECK-LABEL: name: fptrunc_f64
81     ; CHECK: liveins: $f10_d
82     ; CHECK-NEXT: {{  $}}
83     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fprb(s64) = COPY $f10_d
84     ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:fprb(s16) = G_FPTRUNC [[COPY]](s64)
85     ; CHECK-NEXT: $f10_h = COPY [[FPTRUNC]](s16)
86     ; CHECK-NEXT: PseudoRET implicit $f10_h
87     %0:_(s64) = COPY $f10_d
88     %1:_(s16) = G_FPTRUNC %0(s64)
89     $f10_h = COPY %1(s16)
90     PseudoRET implicit $f10_h
92 ...