| 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> |