[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / inst-select-mad_64_32.mir
blob698281caca245e9f3a6626e5eb3355c6565ceaee
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1030 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GFX10 %s
3 # RUN: llc -march=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -global-isel-abort=2 -pass-remarks-missed='gisel*' -verify-machineinstrs %s -o - 2>%t | FileCheck -check-prefix=GFX11 %s
5 ---
6 name: mad_u64_u32_vvv
7 legalized: true
8 regBankSelected: true
10 body: |
11   bb.0:
12     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
13     ; GFX10-LABEL: name: mad_u64_u32_vvv
14     ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
15     ; GFX10-NEXT: {{  $}}
16     ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
17     ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
18     ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr3
19     ; GFX10-NEXT: [[V_MAD_U64_U32_e64_:%[0-9]+]]:vreg_64, [[V_MAD_U64_U32_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_MAD_U64_U32_e64 [[COPY]], [[COPY1]], [[COPY2]], 0, implicit $exec
20     ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_MAD_U64_U32_e64_]], implicit [[V_MAD_U64_U32_e64_1]]
21     ; GFX11-LABEL: name: mad_u64_u32_vvv
22     ; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
23     ; GFX11-NEXT: {{  $}}
24     ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
25     ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
26     ; GFX11-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr3
27     ; GFX11-NEXT: [[V_MAD_U64_U32_gfx11_e64_:%[0-9]+]]:vreg_64, [[V_MAD_U64_U32_gfx11_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_MAD_U64_U32_gfx11_e64 [[COPY]], [[COPY1]], [[COPY2]], 0, implicit $exec
28     ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MAD_U64_U32_gfx11_e64_]], implicit [[V_MAD_U64_U32_gfx11_e64_1]]
29     %0:vgpr(s32) = COPY $vgpr0
30     %1:vgpr(s32) = COPY $vgpr1
31     %2:vgpr(s32) = COPY $vgpr2
32     %3:vgpr(s32) = COPY $vgpr3
33     %4:vgpr(s64) = G_MERGE_VALUES %2, %3
34     %5:vgpr(s64), %6:vcc(s1) = G_AMDGPU_MAD_U64_U32 %0, %1, %3
35     S_ENDPGM 0, implicit %5, implicit %6
36 ...
38 ---
39 name: mad_i64_i32_vvv
40 legalized: true
41 regBankSelected: true
43 body: |
44   bb.0:
45     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
46     ; GFX10-LABEL: name: mad_i64_i32_vvv
47     ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
48     ; GFX10-NEXT: {{  $}}
49     ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
50     ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
51     ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr3
52     ; GFX10-NEXT: [[V_MAD_I64_I32_e64_:%[0-9]+]]:vreg_64, [[V_MAD_I64_I32_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_MAD_I64_I32_e64 [[COPY]], [[COPY1]], [[COPY2]], 0, implicit $exec
53     ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_MAD_I64_I32_e64_]], implicit [[V_MAD_I64_I32_e64_1]]
54     ; GFX11-LABEL: name: mad_i64_i32_vvv
55     ; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
56     ; GFX11-NEXT: {{  $}}
57     ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
58     ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
59     ; GFX11-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr3
60     ; GFX11-NEXT: [[V_MAD_I64_I32_gfx11_e64_:%[0-9]+]]:vreg_64, [[V_MAD_I64_I32_gfx11_e64_1:%[0-9]+]]:sreg_32_xm0_xexec = V_MAD_I64_I32_gfx11_e64 [[COPY]], [[COPY1]], [[COPY2]], 0, implicit $exec
61     ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MAD_I64_I32_gfx11_e64_]], implicit [[V_MAD_I64_I32_gfx11_e64_1]]
62     %0:vgpr(s32) = COPY $vgpr0
63     %1:vgpr(s32) = COPY $vgpr1
64     %2:vgpr(s32) = COPY $vgpr2
65     %3:vgpr(s32) = COPY $vgpr3
66     %4:vgpr(s64) = G_MERGE_VALUES %2, %3
67     %5:vgpr(s64), %6:vcc(s1) = G_AMDGPU_MAD_I64_I32 %0, %1, %3
68     S_ENDPGM 0, implicit %5, implicit %6
69 ...