1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2 # RUN: llc -mtriple=riscv32 -mattr=+f,+v -run-pass=legalizer %s -o - | FileCheck %s
7 ; CHECK-LABEL: name: freeze_i32
8 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10
9 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[COPY]]
10 ; CHECK-NEXT: $x10 = COPY [[FREEZE]](s32)
11 ; CHECK-NEXT: PseudoRET implicit $x10
13 %2:_(s32) = G_FREEZE %1
15 PseudoRET implicit $x10
22 ; CHECK-LABEL: name: freeze_f32
23 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f
24 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[COPY]]
25 ; CHECK-NEXT: $f10_f = COPY [[FREEZE]](s32)
26 ; CHECK-NEXT: PseudoRET implicit $f10_f
27 %1:_(s32) = COPY $f10_f
28 %2:_(s32) = G_FREEZE %1
30 PseudoRET implicit $f10_f
37 ; CHECK-LABEL: name: freeze_nxv2i1
38 ; CHECK: [[COPY:%[0-9]+]]:_(<vscale x 2 x s1>) = COPY $v8
39 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<vscale x 2 x s1>) = G_FREEZE [[COPY]]
40 ; CHECK-NEXT: $v8 = COPY [[FREEZE]](<vscale x 2 x s1>)
41 ; CHECK-NEXT: PseudoRET implicit $v8
42 %1:_(<vscale x 2 x s1>) = COPY $v8
43 %2:_(<vscale x 2 x s1>) = G_FREEZE %1
44 $v8 = COPY %2(<vscale x 2 x s1>)
45 PseudoRET implicit $v8
52 ; CHECK-LABEL: name: freeze_nxv2i32
53 ; CHECK: [[COPY:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
54 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<vscale x 2 x s32>) = G_FREEZE [[COPY]]
55 ; CHECK-NEXT: $v8 = COPY [[FREEZE]](<vscale x 2 x s32>)
56 ; CHECK-NEXT: PseudoRET implicit $v8
57 %1:_(<vscale x 2 x s32>) = COPY $v8
58 %2:_(<vscale x 2 x s32>) = G_FREEZE %1
59 $v8 = COPY %2(<vscale x 2 x s32>)
60 PseudoRET implicit $v8