Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / GlobalISel / legalize-freeze.mir
blobe3d58008bb4bf93bb30e377d6bcf5dbd7485334f
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
2 # RUN: llc -verify-machineinstrs -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s
4 # test freeze
6 ...
7 ---
8 name:            test_freezep0
9 body:             |
10   bb.1:
11     ; CHECK-LABEL: name: test_freezep0
12     ; CHECK: [[DEF:%[0-9]+]]:_(p0) = IMPLICIT_DEF
13     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p0) = G_FREEZE [[DEF]]
14     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY [[FREEZE]](p0)
15     ; CHECK-NEXT: RET 0, implicit [[COPY]](p0)
16     %0:_(p0) = IMPLICIT_DEF
17     %1:_(p0) = G_FREEZE %0
18     %2:_(p0) = COPY %1(p0)
19     RET 0, implicit %2
21 ...
22 ---
23 name:            test_freeze64
24 body:             |
25   bb.1:
26     ; CHECK-LABEL: name: test_freeze64
27     ; CHECK: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF
28     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[DEF]]
29     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[FREEZE]](s64)
30     ; CHECK-NEXT: RET 0, implicit [[COPY]](s64)
31     %0:_(s64) = IMPLICIT_DEF
32     %1:_(s64) = G_FREEZE %0
33     %2:_(s64) = COPY %1(s64)
34     RET 0, implicit %2
36 ...
37 ---
38 name:            test_freeze48
39 body:             |
40   bb.1:
41     ; CHECK-LABEL: name: test_freeze48
42     ; CHECK: [[DEF:%[0-9]+]]:_(s48) = IMPLICIT_DEF
43     ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[DEF]](s48)
44     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[ANYEXT]]
45     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s48) = G_TRUNC [[FREEZE]](s64)
46     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s48) = COPY [[TRUNC]](s48)
47     ; CHECK-NEXT: RET 0, implicit [[COPY]](s48)
48     %0:_(s48) = IMPLICIT_DEF
49     %1:_(s48) = G_FREEZE %0
50     %2:_(s48) = COPY %1(s48)
51     RET 0, implicit %2
53 ...
54 ---
55 name:            test_freeze32
56 body:             |
57   bb.1:
58     ; CHECK-LABEL: name: test_freeze32
59     ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF
60     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[DEF]]
61     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[FREEZE]](s32)
62     ; CHECK-NEXT: RET 0, implicit [[COPY]](s32)
63     %0:_(s32) = IMPLICIT_DEF
64     %1:_(s32) = G_FREEZE %0
65     %2:_(s32) = COPY %1(s32)
66     RET 0, implicit %2
68 ...
69 ---
70 name:            test_freeze16
71 body:             |
72   bb.1:
73     ; CHECK-LABEL: name: test_freeze16
74     ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF
75     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s16) = G_FREEZE [[DEF]]
76     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[FREEZE]](s16)
77     ; CHECK-NEXT: RET 0, implicit [[COPY]](s16)
78     %0:_(s16) = IMPLICIT_DEF
79     %1:_(s16) = G_FREEZE %0
80     %2:_(s16) = COPY %1(s16)
81     RET 0, implicit %2
83 ...
84 ---
85 name:            test_freeze8
86 body:             |
87   bb.1:
88     ; CHECK-LABEL: name: test_freeze8
89     ; CHECK: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF
90     ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s8) = G_FREEZE [[DEF]]
91     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY [[FREEZE]](s8)
92     ; CHECK-NEXT: RET 0, implicit [[COPY]](s8)
93     %0:_(s8) = IMPLICIT_DEF
94     %1:_(s8) = G_FREEZE %0
95     %2:_(s8) = COPY %1(s8)
96     RET 0, implicit %2
98 ...