[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / inst-select-amdgcn.fcmp.constants.w64.mir
blob478f12e61303390dec731a3414b5aa971ffff97f
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1100 -mattr="+wavefrontsize64" -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
4 ---
5 name: fcmp_false_f16
6 legalized: true
7 regBankSelected: true
8 tracksRegLiveness: true
10 body: |
11   bb.0:
12     liveins: $vgpr0, $vgpr1
13     ; CHECK-LABEL: name: fcmp_false_f16
14     ; CHECK: liveins: $vgpr0, $vgpr1
15     ; CHECK-NEXT: {{  $}}
16     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
17     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
18     ; CHECK-NEXT: [[V_CVT_F16_F32_t16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
19     ; CHECK-NEXT: [[V_CVT_F16_F32_t16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
20     ; CHECK-NEXT: [[V_CMP_F_F16_t16_e64_:%[0-9]+]]:sreg_64 = V_CMP_F_F16_t16_e64 0, [[V_CVT_F16_F32_t16_e64_]], 0, [[V_CVT_F16_F32_t16_e64_1]], 0, implicit $mode, implicit $exec
21     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F16_t16_e64_]]
22     %0:vgpr(s32) = COPY $vgpr0
23     %1:vgpr(s32) = COPY $vgpr1
24     %2:vgpr(s16) = G_FPTRUNC %0
25     %3:vgpr(s16) = G_FPTRUNC %1
26     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %2, %3, 0
27     S_ENDPGM 0, implicit %4
28 ...
30 ---
31 name: fcmp_true_f16
32 legalized: true
33 regBankSelected: true
34 tracksRegLiveness: true
36 body: |
37   bb.0:
38     liveins: $vgpr0, $vgpr1
39     ; CHECK-LABEL: name: fcmp_true_f16
40     ; CHECK: liveins: $vgpr0, $vgpr1
41     ; CHECK-NEXT: {{  $}}
42     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
43     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
44     ; CHECK-NEXT: [[V_CVT_F16_F32_t16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
45     ; CHECK-NEXT: [[V_CVT_F16_F32_t16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_t16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
46     ; CHECK-NEXT: [[V_CMP_TRU_F16_t16_e64_:%[0-9]+]]:sreg_64 = V_CMP_TRU_F16_t16_e64 0, [[V_CVT_F16_F32_t16_e64_]], 0, [[V_CVT_F16_F32_t16_e64_1]], 0, implicit $mode, implicit $exec
47     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F16_t16_e64_]]
48     %0:vgpr(s32) = COPY $vgpr0
49     %1:vgpr(s32) = COPY $vgpr1
50     %2:vgpr(s16) = G_FPTRUNC %0
51     %3:vgpr(s16) = G_FPTRUNC %1
52     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %2, %3, 15
53     S_ENDPGM 0, implicit %4
54 ...
56 ---
57 name: fcmp_false_f32
58 legalized: true
59 regBankSelected: true
60 tracksRegLiveness: true
62 body: |
63   bb.0:
64     liveins: $vgpr0, $vgpr1
65     ; CHECK-LABEL: name: fcmp_false_f32
66     ; CHECK: liveins: $vgpr0, $vgpr1
67     ; CHECK-NEXT: {{  $}}
68     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
69     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
70     ; CHECK-NEXT: [[V_CMP_F_F32_e64_:%[0-9]+]]:sreg_64 = V_CMP_F_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
71     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F32_e64_]]
72     %0:vgpr(s32) = COPY $vgpr0
73     %1:vgpr(s32) = COPY $vgpr1
74     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %0, %1, 0
75     S_ENDPGM 0, implicit %4
76 ...
78 ---
79 name: fcmp_true_f32
80 legalized: true
81 regBankSelected: true
82 tracksRegLiveness: true
84 body: |
85   bb.0:
86     liveins: $vgpr0, $vgpr1
87     ; CHECK-LABEL: name: fcmp_true_f32
88     ; CHECK: liveins: $vgpr0, $vgpr1
89     ; CHECK-NEXT: {{  $}}
90     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
91     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
92     ; CHECK-NEXT: [[V_CMP_TRU_F32_e64_:%[0-9]+]]:sreg_64 = V_CMP_TRU_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
93     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F32_e64_]]
94     %0:vgpr(s32) = COPY $vgpr0
95     %1:vgpr(s32) = COPY $vgpr1
96     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %0, %1, 15
97     S_ENDPGM 0, implicit %4
98 ...
101 name: fcmp_false_f64
102 legalized: true
103 regBankSelected: true
104 tracksRegLiveness: true
106 body: |
107   bb.0:
108     liveins: $vgpr0, $vgpr1
109     ; CHECK-LABEL: name: fcmp_false_f64
110     ; CHECK: liveins: $vgpr0, $vgpr1
111     ; CHECK-NEXT: {{  $}}
112     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
113     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
114     ; CHECK-NEXT: [[V_CVT_F64_F32_e64_:%[0-9]+]]:vreg_64 = nofpexcept V_CVT_F64_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
115     ; CHECK-NEXT: [[V_CVT_F64_F32_e64_1:%[0-9]+]]:vreg_64 = nofpexcept V_CVT_F64_F32_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
116     ; CHECK-NEXT: [[V_CMP_F_F64_e64_:%[0-9]+]]:sreg_64 = V_CMP_F_F64_e64 0, [[V_CVT_F64_F32_e64_]], 0, [[V_CVT_F64_F32_e64_1]], 0, implicit $mode, implicit $exec
117     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F64_e64_]]
118     %0:vgpr(s32) = COPY $vgpr0
119     %1:vgpr(s32) = COPY $vgpr1
120     %2:vgpr(s64) = G_FPEXT %0
121     %3:vgpr(s64) = G_FPEXT %1
122     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %2, %3, 0
123     S_ENDPGM 0, implicit %4
127 name: fcmp_true_f64
128 legalized: true
129 regBankSelected: true
130 tracksRegLiveness: true
132 body: |
133   bb.0:
134     liveins: $vgpr0, $vgpr1
135     ; CHECK-LABEL: name: fcmp_true_f64
136     ; CHECK: liveins: $vgpr0, $vgpr1
137     ; CHECK-NEXT: {{  $}}
138     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
139     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
140     ; CHECK-NEXT: [[V_CVT_F64_F32_e64_:%[0-9]+]]:vreg_64 = nofpexcept V_CVT_F64_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
141     ; CHECK-NEXT: [[V_CVT_F64_F32_e64_1:%[0-9]+]]:vreg_64 = nofpexcept V_CVT_F64_F32_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
142     ; CHECK-NEXT: [[V_CMP_TRU_F64_e64_:%[0-9]+]]:sreg_64 = V_CMP_TRU_F64_e64 0, [[V_CVT_F64_F32_e64_]], 0, [[V_CVT_F64_F32_e64_1]], 0, implicit $mode, implicit $exec
143     ; CHECK-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F64_e64_]]
144     %0:vgpr(s32) = COPY $vgpr0
145     %1:vgpr(s32) = COPY $vgpr1
146     %2:vgpr(s64) = G_FPEXT %0
147     %3:vgpr(s64) = G_FPEXT %1
148     %4:sgpr(s64) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.fcmp), %2, %3, 15
149     S_ENDPGM 0, implicit %4