|
2 | 2 | # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -disable-gisel-legality-check -o - %s | FileCheck -check-prefix=GFX8 %s
|
3 | 3 | # RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s
|
4 | 4 | # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX10 %s
|
5 |
| -# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX11 %s |
| 5 | +# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -mattr=+real-true16 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX11,GFX11-TRUE16 %s |
| 6 | +# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -mattr=-real-true16 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=GFX11,GFX11-FAKE16 %s |
6 | 7 |
|
7 | 8 | ---
|
8 | 9 |
|
@@ -38,12 +39,20 @@ body: |
|
38 | 39 | ; GFX10-NEXT: [[V_MAX_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
39 | 40 | ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_e64_]]
|
40 | 41 | ;
|
41 |
| - ; GFX11-LABEL: name: fcanonicalize_f16_denorm |
42 |
| - ; GFX11: liveins: $vgpr0 |
43 |
| - ; GFX11-NEXT: {{ $}} |
44 |
| - ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
45 |
| - ; GFX11-NEXT: [[V_MAX_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_fake16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec |
46 |
| - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_fake16_e64_]] |
| 42 | + ; GFX11-TRUE16-LABEL: name: fcanonicalize_f16_denorm |
| 43 | + ; GFX11-TRUE16: liveins: $vgpr0 |
| 44 | + ; GFX11-TRUE16-NEXT: {{ $}} |
| 45 | + ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
| 46 | + ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16 |
| 47 | + ; GFX11-TRUE16-NEXT: [[V_MAX_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, [[COPY1]], 0, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec |
| 48 | + ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_t16_e64_]] |
| 49 | + ; |
| 50 | + ; GFX11-FAKE16-LABEL: name: fcanonicalize_f16_denorm |
| 51 | + ; GFX11-FAKE16: liveins: $vgpr0 |
| 52 | + ; GFX11-FAKE16-NEXT: {{ $}} |
| 53 | + ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
| 54 | + ; GFX11-FAKE16-NEXT: [[V_MAX_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_fake16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec |
| 55 | + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_fake16_e64_]] |
47 | 56 | %0:vgpr(s32) = COPY $vgpr0
|
48 | 57 | %1:vgpr(s16) = G_TRUNC %0
|
49 | 58 | %2:vgpr(s16) = G_FCANONICALIZE %1
|
@@ -84,12 +93,20 @@ body: |
|
84 | 93 | ; GFX10-NEXT: [[V_MAX_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
|
85 | 94 | ; GFX10-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_e64_]]
|
86 | 95 | ;
|
87 |
| - ; GFX11-LABEL: name: fcanonicalize_f16_flush |
88 |
| - ; GFX11: liveins: $vgpr0 |
89 |
| - ; GFX11-NEXT: {{ $}} |
90 |
| - ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
91 |
| - ; GFX11-NEXT: [[V_MAX_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_fake16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec |
92 |
| - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_fake16_e64_]] |
| 96 | + ; GFX11-TRUE16-LABEL: name: fcanonicalize_f16_flush |
| 97 | + ; GFX11-TRUE16: liveins: $vgpr0 |
| 98 | + ; GFX11-TRUE16-NEXT: {{ $}} |
| 99 | + ; GFX11-TRUE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
| 100 | + ; GFX11-TRUE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_16 = COPY [[COPY]].lo16 |
| 101 | + ; GFX11-TRUE16-NEXT: [[V_MAX_F16_t16_e64_:%[0-9]+]]:vgpr_16 = nofpexcept V_MAX_F16_t16_e64 0, [[COPY1]], 0, [[COPY1]], 0, 0, 0, implicit $mode, implicit $exec |
| 102 | + ; GFX11-TRUE16-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_t16_e64_]] |
| 103 | + ; |
| 104 | + ; GFX11-FAKE16-LABEL: name: fcanonicalize_f16_flush |
| 105 | + ; GFX11-FAKE16: liveins: $vgpr0 |
| 106 | + ; GFX11-FAKE16-NEXT: {{ $}} |
| 107 | + ; GFX11-FAKE16-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 |
| 108 | + ; GFX11-FAKE16-NEXT: [[V_MAX_F16_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_fake16_e64 0, [[COPY]], 0, [[COPY]], 0, 0, implicit $mode, implicit $exec |
| 109 | + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_MAX_F16_fake16_e64_]] |
93 | 110 | %0:vgpr(s32) = COPY $vgpr0
|
94 | 111 | %1:vgpr(s16) = G_TRUNC %0
|
95 | 112 | %2:vgpr(s16) = G_FCANONICALIZE %1
|
|
0 commit comments