| | 113 | <h3>.control_directive</h3> |
| | 114 | <p>Open control directive section. This section must be 128 bytes. The content of this |
| | 115 | section will be stored in control_directive field in kernel configuration. |
| | 116 | Must be defined inside kernel. Can ben used only if LLVM version is 4.0.0 or later</p> |
| | 117 | <h3>.debug_private_segment_buffer_sgpr</h3> |
| | 118 | <p>Syntax: .debug_private_segment_buffer_sgpr SGPRREG</p> |
| | 119 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 120 | LLVM version is 4.0.0 or later. Set <code>debug_private_segment_buffer_sgpr</code> field in |
| | 121 | kernel configuration.</p> |
| | 122 | <h3>.debug_wavefront_private_segment_offset_sgpr</h3> |
| | 123 | <p>Syntax: .debug_wavefront_private_segment_offset_sgpr SGPRREG</p> |
| | 124 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 125 | LLVM version is 4.0.0 or later. Set <code>debug_wavefront_private_segment_offset_sgpr</code> field in |
| | 126 | kernel configuration.</p> |
| | 166 | <h3>.group_segment_align</h3> |
| | 167 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 168 | LLVM version is 4.0.0 or later. Set <code>group_segment_align</code> field in kernel configuration.</p> |
| | 169 | <h3>.hsa_debugmode</h3> |
| | 170 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 171 | LLVM version is 4.0.0 or later. Enable usage of the DEBUG_MODE in kernel HSA configuration.</p> |
| | 172 | <h3>.hsa_dims</h3> |
| | 173 | <p>Syntax: .hsa_dims DIMENSIONS</p> |
| | 174 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 175 | LLVM version is 4.0.0 or later. Defines what dimensions (from list: x, y, z) will be used |
| | 176 | to determine space of the kernel execution in kernel HSA configuration.</p> |
| | 177 | <h3>.hsa_dx10clamp</h3> |
| | 178 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 179 | LLVM version is 4.0.0 or later. Enable usage of the DX10_CLAMP in kernel HSA configuration.</p> |
| | 180 | <h3>.hsa_exceptions</h3> |
| | 181 | <p>Syntax: .hsa_exceptions EXCPMASK</p> |
| | 182 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 183 | LLVM version is 4.0.0 or later. Set exception mask in PGMRSRC2 register value in |
| | 184 | kernel HSA configuration. Value should be 7-bit.</p> |
| | 185 | <h3>.hsa_floatmode</h3> |
| | 186 | <p>Syntax: .hsa_floatmode BYTE-VALUE</p> |
| | 187 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 188 | LLVM version is 4.0.0 or later. Defines float-mode in kernel HSA configuration. |
| | 189 | Set floatmode (FP_ROUND and FP_DENORM fields of the MODE register). Default value is 0xc0.</p> |
| | 190 | <h3>.hsa_ieeemode</h3> |
| | 191 | <p>Syntax: .hsa_ieeemode</p> |
| | 192 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 193 | LLVM version is 4.0.0 or later. Set ieee-mode in kernel HSA configuration.</p> |
| | 194 | <h3>.hsa_localsize</h3> |
| | 195 | <p>Syntax: .hsa_localsize SIZE</p> |
| | 196 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 197 | LLVM version is 4.0.0 or later. Defines initial local memory size used by kernel in |
| | 198 | kernel HSA configuration.</p> |
| | 199 | <h3>.hsa_pgmrsrc1</h3> |
| | 200 | <p>Syntax: .hsa_pgmrsrc1 VALUE</p> |
| | 201 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 202 | LLVM version is 4.0.0 or later. Defines value of the PGMRSRC1 in kernel HSA configuration.</p> |
| | 203 | <h3>.hsa_pgmrsrc2</h3> |
| | 204 | <p>Syntax: .hsa_pgmrsrc2 VALUE</p> |
| | 205 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 206 | LLVM version is 4.0.0 or later. Defines value of the PGMRSRC2 in kernel HSA configration. |
| | 207 | If dimensions is set then bits that controls dimension setup will be ignored. |
| | 208 | SCRATCH_EN bit will be ignored.</p> |
| | 209 | <h3>.priority</h3> |
| | 210 | <p>Syntax: .hsa_priority PRIORITY</p> |
| | 211 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 212 | LLVM version is 4.0.0 or later. Defines priority (0-3) in kernel HSA configuration.</p> |
| | 213 | <h3>.hsa_privmode</h3> |
| | 214 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 215 | LLVM version is 4.0.0 or later. Enable usage of the PRIV (privileged mode) in |
| | 216 | kernel HSA configuration.</p> |
| | 217 | <h3>.hsa_sgprsnum</h3> |
| | 218 | <p>Syntax: .hsa_sgprsnum REGNUM</p> |
| | 219 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 220 | LLVM version is 4.0.0 or later. Set number of scalar registers which can be used during |
| | 221 | kernel execution in kernel HSA configuration.</p> |
| | 222 | <h3>.hsa_tgsize</h3> |
| | 223 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 224 | LLVM version is 4.0.0 or later. Enable usage of the TG_SIZE_EN in kernel HSA configuration.</p> |
| | 225 | <h3>.hsa_userdatanum</h3> |
| | 226 | <p>Syntax: .userdatanum NUMBER</p> |
| | 227 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 228 | LLVM version is 4.0.0 or later. Set number of registers for USERDATA in |
| | 229 | kernel HSA configuration.</p> |
| | 230 | <h3>.hsa_vgprsnum</h3> |
| | 231 | <p>Syntax: .hsa_vgprsnum REGNUM</p> |
| | 232 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) can ben used only if |
| | 233 | LLVM version is 4.0.0 or later. Set number of vector registers which can be used during |
| | 234 | kernel execution in kernel HSA configuration.</p> |
| | 256 | <h3>.kernarg_segment_align</h3> |
| | 257 | <p>Syntax: .kernarg_segment_align ALIGN</p> |
| | 258 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 259 | LLVM version is 4.0.0 or later. Set <code>kernarg_segment_alignment</code> field in |
| | 260 | kernel configuration. Value must be a power of two.</p> |
| | 261 | <h3>.kernarg_segment_size</h3> |
| | 262 | <p>Syntax: .kernarg_segment_size SIZE</p> |
| | 263 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 264 | LLVM version is 4.0.0 or later. Set <code>kernarg_segment_byte_size</code> field in |
| | 265 | kernel configuration.</p> |
| | 266 | <h3>.kernel_code_entry_offset</h3> |
| | 267 | <p>Syntax: .kernel_code_entry_offset OFFSET</p> |
| | 268 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 269 | LLVM version is 4.0.0 or later. Set <code>kernel_code_entry_byte_offset</code> field in |
| | 270 | kernel configuration. This field store offset between configuration and kernel code. |
| | 271 | By default is 256.</p> |
| | 272 | <h3>.kernel_code_prefetch_offset</h3> |
| | 273 | <p>Syntax: .kernel_code_prefetch_offset OFFSET</p> |
| | 274 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 275 | LLVM version is 4.0.0 or later. Set <code>kernel_code_prefetch_byte_offset</code> field in kernel |
| | 276 | configuration.</p> |
| | 277 | <h3>.kernel_code_prefetch_size</h3> |
| | 278 | <p>Syntax: .kernel_code_prefetch_size OFFSET</p> |
| | 279 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 280 | LLVM version is 4.0.0 or later. Set <code>kernel_code_prefetch_byte_size</code> field in kernel configuration.</p> |
| | 327 | <h3>.reserved_sgprs</h3> |
| | 328 | <p>Syntax: .reserved_sgprs FIRSTREG, LASTREG</p> |
| | 329 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 330 | LLVM version is 4.0.0 or later. Set <code>reserved_sgpr_first</code> and <code>reserved_sgpr_count</code> |
| | 331 | fields in kernel configuration. <code>reserved_sgpr_count</code> filled by number of registers |
| | 332 | (LASTREG-FIRSTREG+1).</p> |
| | 333 | <h3>.reserved_vgprs</h3> |
| | 334 | <p>Syntax: .reserved_vgprs FIRSTREG, LASTREG</p> |
| | 335 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 336 | LLVM version is 4.0.0 or later. Set <code>reserved_vgpr_first</code> and <code>reserved_vgpr_count</code> |
| | 337 | fields in kernel configuration. <code>reserved_vgpr_count</code> filled by number of registers |
| | 338 | (LASTREG-FIRSTREG+1).</p> |
| | 339 | <h3>.runtime_loader_kernel_symbol</h3> |
| | 340 | <p>Syntax: .runtime_loader_kernel_symbol ADDRESS</p> |
| | 341 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 342 | LLVM version is 4.0.0 or later. Set <code>runtime_loader_kernel_symbol</code> field in kernel |
| | 343 | configuration.</p> |
| | 362 | <h3>.use_debug_enabled</h3> |
| | 363 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 364 | LLVM version is 4.0.0 or later. Enable <code>is_debug_enabled</code> field in kernel configuration.</p> |
| | 365 | <h3>.use_dispatch_id</h3> |
| | 366 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 367 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_dispatch_id</code> field in kernel |
| | 368 | configuration.</p> |
| | 369 | <h3>.use_dispatch_ptr</h3> |
| | 370 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 371 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_dispatch_ptr</code> field in kernel |
| | 372 | configuration.</p> |
| | 373 | <h3>.use_dynamic_call_stack</h3> |
| | 374 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 375 | LLVM version is 4.0.0 or later. Enable <code>is_dynamic_call_stack</code> field in |
| | 376 | kernel configuration.</p> |
| | 377 | <h3>.use_flat_scratch_init</h3> |
| | 378 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 379 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_flat_scratch_init</code> field in |
| | 380 | kernel configuration.</p> |
| | 381 | <h3>.use_grid_workgroup_count</h3> |
| | 382 | <p>Syntax: .use_grid_workgroup_count DIMENSIONS</p> |
| | 383 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 384 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_grid_workgroup_count_X</code>, |
| | 385 | <code>enable_sgpr_grid_workgroup_count_Y</code> and <code>enable_sgpr_grid_workgroup_count_Z</code> fields |
| | 386 | in kernel configuration, respectively by given dimensions.</p> |
| | 387 | <h3>.use_kernarg_segment_ptr</h3> |
| | 388 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 389 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_kernarg_segment_ptr</code> field in |
| | 390 | kernel configuration.</p> |
| | 391 | <h3>.use_ordered_append_gds</h3> |
| | 392 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 393 | LLVM version is 4.0.0 or later. Enable <code>enable_ordered_append_gds</code> field in |
| | 394 | kernel configuration.</p> |
| | 395 | <h3>.use_private_segment_buffer</h3> |
| | 396 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 397 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_private_segment_buffer</code> field in |
| | 398 | kernel configuration.</p> |
| | 399 | <h3>.use_private_segment_size</h3> |
| | 400 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 401 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_private_segment_size</code> field in |
| | 402 | kernel configuration.</p> |
| | 403 | <h3>.use_ptr64</h3> |
| | 404 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 405 | LLVM version is 4.0.0 or later. Enable <code>is_ptr64</code> field in kernel configuration.</p> |
| | 406 | <h3>.use_queue_ptr</h3> |
| | 407 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 408 | LLVM version is 4.0.0 or later. Enable <code>enable_sgpr_queue_ptr</code> field in |
| | 409 | kernel configuration.</p> |
| | 410 | <h3>.use_xnack_enabled</h3> |
| | 411 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 412 | LLVM version is 4.0.0 or later. Enable <code>is_xnack_enabled</code> field in kernel configuration.</p> |
| | 421 | <h3>.wavefront_sgpr_count</h3> |
| | 422 | <p>Syntax: .wavefront_sgpr_count REGNUM</p> |
| | 423 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 424 | LLVM version is 4.0.0 or later. Set <code>wavefront_sgpr_count</code> field in kernel configuration.</p> |
| | 425 | <h3>.wavefront_size</h3> |
| | 426 | <p>Syntax: .wavefront_size POWEROFTWO</p> |
| | 427 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 428 | LLVM version is 4.0.0 or later. Set <code>wavefront_size</code> field in kernel configuration. |
| | 429 | Value must be a power of two.</p> |
| | 430 | <h3>.workgroup_fbarrier_count</h3> |
| | 431 | <p>Syntax: .workgroup_fbarrier_count COUNT</p> |
| | 432 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 433 | LLVM version is 4.0.0 or later. Set <code>workgroup_fbarrier_count</code> field in |
| | 434 | kernel configuration.</p> |
| | 435 | <h3>.workgroup_group_segment_size</h3> |
| | 436 | <p>Syntax: .workgroup_group_segment_size SIZE</p> |
| | 437 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 438 | LLVM version is 4.0.0 or later. Set <code>workgroup_group_segment_byte_size</code> in |
| | 439 | kernel configuration.</p> |
| | 440 | <h3>.workitem_private_segment_size</h3> |
| | 441 | <p>Syntax: .workitem_private_segment_size SIZE</p> |
| | 442 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 443 | LLVM version is 4.0.0 or later. Set <code>workitem_private_segment_byte_size</code> field in |
| | 444 | kernel configuration.</p> |
| | 445 | <h3>.workitem_vgpr_count</h3> |
| | 446 | <p>Syntax: .workitem_vgpr_count REGNUM</p> |
| | 447 | <p>This pseudo-op must be inside kernel configuration (<code>.config</code>) and can ben used only if |
| | 448 | LLVM version is 4.0.0 or later. Set <code>workitem_vgpr_count</code> field in kernel configuration.</p> |