[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / gfx10-twoaddr-fma.mir
blob2fe4d9d8e9e9a7c4603be7a6cd600efc609d3257
1 # RUN: llc -march=amdgcn -mcpu=gfx1010 %s -run-pass twoaddressinstruction -verify-machineinstrs -o - | FileCheck --check-prefixes=GFX10 %s
2 # RUN: llc -march=amdgcn -mcpu=gfx1010 %s -run-pass twoaddressinstruction -verify-machineinstrs -o - -early-live-intervals | FileCheck --check-prefixes=GFX10 %s
4 # GFX10-LABEL: name: test_fmamk_reg_imm_f16
5 # GFX10: %2:vgpr_32 = IMPLICIT_DEF
6 # GFX10-NOT: V_MOV_B32
7 # GFX10: V_FMAMK_F16 killed %0.sub0, 1078523331, killed %1, implicit $mode, implicit $exec
8 ---
9 name:            test_fmamk_reg_imm_f16
10 registers:
11   - { id: 0, class: vreg_64 }
12   - { id: 1, class: vgpr_32 }
13   - { id: 2, class: vgpr_32 }
14   - { id: 3, class: vgpr_32 }
15 body:             |
16   bb.0:
18     %0 = IMPLICIT_DEF
19     %1 = COPY %0.sub1
20     %2 = V_MOV_B32_e32 1078523331, implicit $exec
21     %3 = V_FMAC_F16_e32 killed %0.sub0, %2, killed %1, implicit $mode, implicit $exec
23 ...
25 # GFX10-LABEL: name: test_fmamk_imm_reg_f16
26 # GFX10: %2:vgpr_32 = IMPLICIT_DEF
27 # GFX10-NOT: V_MOV_B32
28 # GFX10: V_FMAMK_F16 killed %0.sub0, 1078523331, killed %1, implicit $mode, implicit $exec
29 ---
30 name:            test_fmamk_imm_reg_f16
31 registers:
32   - { id: 0, class: vreg_64 }
33   - { id: 1, class: vgpr_32 }
34   - { id: 2, class: vgpr_32 }
35   - { id: 3, class: vgpr_32 }
36 body:             |
37   bb.0:
39     %0 = IMPLICIT_DEF
40     %1 = COPY %0.sub1
41     %2 = V_MOV_B32_e32 1078523331, implicit $exec
42     %3 = V_FMAC_F16_e32 %2, killed %0.sub0, killed %1, implicit $mode, implicit $exec
44 ...
46 # GFX10-LABEL: name: test_fmaak_f16
47 # GFX10: %1:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec
48 # GFX10-NOT: V_MOV_B32
49 # GFX10: V_FMAAK_F16 killed %0.sub0, %0.sub1, 1078523331, implicit $mode, implicit $exec
50 ---
51 name:            test_fmaak_f16
52 registers:
53   - { id: 0, class: vreg_64 }
54   - { id: 1, class: vgpr_32 }
55   - { id: 2, class: vgpr_32 }
56 body:             |
57   bb.0:
59     %0 = IMPLICIT_DEF
60     %1 = V_MOV_B32_e32 1078523331, implicit $exec
61     %2 = V_FMAC_F16_e32 killed %0.sub0, %0.sub1, %1, implicit $mode, implicit $exec
62     S_ENDPGM 0, implicit %1
63 ...
65 # GFX10-LABEL: name: test_fmaak_inline_literal_f16
66 # GFX10: %1:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
67 # GFX10-NOT: V_MOV_B32
68 # GFX10: %2:vgpr_32 = V_FMAAK_F16 16384, killed %0, 49664, implicit $mode, implicit $exec
70 ---
71 name:            test_fmaak_inline_literal_f16
72 tracksRegLiveness: true
73 liveins:
74   - { reg: '$vgpr0', virtual-reg: '%0' }
75 body:             |
76   bb.0:
77     liveins: $vgpr0
79     %0:vgpr_32 = COPY killed $vgpr0
81     %1:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
82     %2:vgpr_32 = V_FMAC_F16_e32 16384, killed %0, %1, implicit $mode, implicit $exec
83     S_ENDPGM 0, implicit %1
84 ...