[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / postlegalizer-combiner-freeze.mir
blob9f6d85baddc3253b15caa7a0929c68c08713c73a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs -o - %s | FileCheck %s
4 ---
5 name: test_freeze_freeze_s32
6 tracksRegLiveness: true
7 legalized: true
8 body: |
9   bb.0:
10     liveins: $vgpr0
11     ; CHECK-LABEL: name: test_freeze_freeze_s32
12     ; CHECK: liveins: $vgpr0
13     ; CHECK-NEXT: {{  $}}
14     ; CHECK-NEXT: %src0:_(s32) = COPY $vgpr0
15     ; CHECK-NEXT: %freeze0:_(s32) = G_FREEZE %src0
16     ; CHECK-NEXT: %ptr:_(p1) = G_IMPLICIT_DEF
17     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (store (s32), addrspace 1)
18     %src0:_(s32) = COPY $vgpr0
19     %freeze0:_(s32) = G_FREEZE %src0
20     %freeze1:_(s32) = G_FREEZE %freeze0
21     %ptr:_(p1) = G_IMPLICIT_DEF
22     G_STORE %freeze1, %ptr :: (store (s32), addrspace 1, align 4)
23 ...
25 ---
26 name: test_freeze_freeze_freeze_s32
27 tracksRegLiveness: true
28 legalized: true
29 body: |
30   bb.0:
31     liveins: $vgpr0
32     ; CHECK-LABEL: name: test_freeze_freeze_freeze_s32
33     ; CHECK: liveins: $vgpr0
34     ; CHECK-NEXT: {{  $}}
35     ; CHECK-NEXT: %src0:_(s32) = COPY $vgpr0
36     ; CHECK-NEXT: %freeze0:_(s32) = G_FREEZE %src0
37     ; CHECK-NEXT: %ptr:_(p1) = G_IMPLICIT_DEF
38     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (store (s32), addrspace 1)
39     %src0:_(s32) = COPY $vgpr0
40     %freeze0:_(s32) = G_FREEZE %src0
41     %freeze1:_(s32) = G_FREEZE %freeze0
42     %freeze2:_(s32) = G_FREEZE %freeze1
43     %ptr:_(p1) = G_IMPLICIT_DEF
44     G_STORE %freeze2, %ptr :: (store (s32), addrspace 1, align 4)
45 ...
47 ---
48 name: test_freeze_freeze_s32_multi_use
49 tracksRegLiveness: true
50 legalized: true
51 body: |
52   bb.0:
53     liveins: $vgpr0
55     ; CHECK-LABEL: name: test_freeze_freeze_s32_multi_use
56     ; CHECK: liveins: $vgpr0
57     ; CHECK-NEXT: {{  $}}
58     ; CHECK-NEXT: %src0:_(s32) = COPY $vgpr0
59     ; CHECK-NEXT: %ptr:_(p1) = G_IMPLICIT_DEF
60     ; CHECK-NEXT: %freeze0:_(s32) = G_FREEZE %src0
61     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (volatile store (s32), addrspace 1)
62     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (volatile store (s32), addrspace 1)
63     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (volatile store (s32), addrspace 1)
64     %src0:_(s32) = COPY $vgpr0
65     %ptr:_(p1) = G_IMPLICIT_DEF
67     %freeze0:_(s32) = G_FREEZE %src0
68     G_STORE %freeze0, %ptr :: (volatile store (s32), addrspace 1, align 4)
70     %freeze1:_(s32) = G_FREEZE %freeze0
71     G_STORE %freeze1, %ptr :: (volatile store (s32), addrspace 1, align 4)
73     G_STORE %freeze1, %ptr :: (volatile store (s32), addrspace 1, align 4)
74 ...
76 ---
77 name: test_freeze_copy_freeze_s32
78 tracksRegLiveness: true
79 legalized: true
80 body: |
81   bb.0:
82     liveins: $vgpr0
83     ; CHECK-LABEL: name: test_freeze_copy_freeze_s32
84     ; CHECK: liveins: $vgpr0
85     ; CHECK-NEXT: {{  $}}
86     ; CHECK-NEXT: %src0:_(s32) = COPY $vgpr0
87     ; CHECK-NEXT: %freeze0:_(s32) = G_FREEZE %src0
88     ; CHECK-NEXT: %ptr:_(p1) = G_IMPLICIT_DEF
89     ; CHECK-NEXT: G_STORE %freeze0(s32), %ptr(p1) :: (store (s32), addrspace 1)
90     %src0:_(s32) = COPY $vgpr0
91     %freeze0:_(s32) = G_FREEZE %src0
92     %copy:_(s32) = COPY %freeze0
93     %freeze1:_(s32) = G_FREEZE %copy
94     %ptr:_(p1) = G_IMPLICIT_DEF
95     G_STORE %freeze1, %ptr :: (store (s32), addrspace 1, align 4)
96 ...