319 lines · plain
1// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx810 -mattr=+xnack -show-encoding %s -filetype=null 2>&1 | FileCheck %s -DMCPU=gfx810 --check-prefixes=ALL,GCN,GFX8,PREGFX10,NOWGP,AMDHSA2// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx1010 -mattr=+xnack -show-encoding %s -filetype=null 2>&1 | FileCheck %s --check-prefixes=ALL,GCN,GFX10PLUS,GFX10,AMDHSA3// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx1100 -show-encoding %s -filetype=null 2>&1 | FileCheck %s --check-prefixes=ALL,GCN,GFX10PLUS,GFX11,AMDHSA4// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx1200 -show-encoding %s -filetype=null 2>&1 | FileCheck %s -DMCPU=gfx1200 --check-prefixes=ALL,GCN,GFX10PLUS,GFX12,AMDHSA5// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd- -mcpu=gfx810 -mattr=+xnack -show-encoding %s -filetype=null 2>&1 | FileCheck %s --check-prefixes=ALL,GCN,NONAMDHSA6// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx90a -mattr=+xnack -show-encoding %s -filetype=null 2>&1 | FileCheck %s -DMCPU=gfx90a --check-prefixes=ALL,GFX90A,PREGFX10,NOWGP,AMDHSA7// RUN: not llvm-mc --amdhsa-code-object-version=4 -triple amdgcn-amd-amdhsa -mcpu=gfx1250 -show-encoding %s -filetype=null 2>&1 | FileCheck %s -DMCPU=gfx1250 --check-prefixes=ALL,GCN,GFX10PLUS,GFX12,NOWGP,AMDHSA8 9.text10 11// GCN-LABEL: warning: test_target12// GFX8-NOT: error:13// GFX10: error: .amdgcn_target directive's target id amdgcn-amd-amdhsa--gfx810:xnack+ does not match the specified target id amdgcn-amd-amdhsa--gfx1010:xnack+14// GFX11: error: .amdgcn_target directive's target id amdgcn-amd-amdhsa--gfx810:xnack+ does not match the specified target id amdgcn-amd-amdhsa--gfx110015// GFX12: error: .amdgcn_target directive's target id amdgcn-amd-amdhsa--gfx810:xnack+ does not match the specified target id amdgcn-amd-amdhsa--[[MCPU]]16// NONAMDHSA: error: .amdgcn_target directive's target id amdgcn-amd-amdhsa--gfx810:xnack+ does not match the specified target id amdgcn-amd-unknown--gfx81017.warning "test_target"18.amdgcn_target "amdgcn-amd-amdhsa--gfx810:xnack+"19 20// GCN-LABEL: warning: test_amdhsa_kernel_no_name21// GCN: error: unknown directive22.warning "test_amdhsa_kernel_no_name"23.amdhsa_kernel24.end_amdhsa_kernel25 26// GCN-LABEL: warning: test_amdhsa_kernel_empty27// NONAMDHSA: error: unknown directive28.warning "test_amdhsa_kernel_empty"29.amdhsa_kernel test_amdhsa_kernel_empty30.end_amdhsa_kernel31 32// GCN-LABEL: warning: test_amdhsa_kernel_unknown_directive33// AMDHSA: error: expected .amdhsa_ directive or .end_amdhsa_kernel34// NONAMDHSA: error: unknown directive35.warning "test_amdhsa_kernel_unknown_directive"36.amdhsa_kernel test_amdhsa_kernel_unknown_directive37 138.end_amdhsa_kernel39 40// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_invalid_size41// AMDHSA: error: value out of range42// NONAMDHSA: error: unknown directive43.warning "test_amdhsa_group_segment_fixed_size_invalid_size"44.amdhsa_kernel test_amdhsa_group_segment_fixed_size_invalid_size45 .amdhsa_group_segment_fixed_size -146.end_amdhsa_kernel47 48// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_invalid_expression49// AMDHSA: error: value out of range50// NONAMDHSA: error: unknown directive51.warning "test_amdhsa_group_segment_fixed_size_invalid_expression"52.amdhsa_kernel test_amdhsa_group_segment_fixed_size_invalid_expression53 .amdhsa_group_segment_fixed_size 10000000000 + 154.end_amdhsa_kernel55 56// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_repeated57// AMDHSA: error: .amdhsa_ directives cannot be repeated58// NONAMDHSA: error: unknown directive59.warning "test_amdhsa_group_segment_fixed_size_repeated"60.amdhsa_kernel test_amdhsa_group_segment_fixed_size_repeated61 .amdhsa_group_segment_fixed_size 162 .amdhsa_group_segment_fixed_size 163.end_amdhsa_kernel64 65// GCN-LABEL: warning: test_amdhsa_next_free_vgpr_missing66// AMDHSA: error: .amdhsa_next_free_vgpr directive is required67// NONAMDHSA: error: unknown directive68.warning "test_amdhsa_next_free_vgpr_missing"69.amdhsa_kernel test_amdhsa_next_free_vgpr_missing70.end_amdhsa_kernel71 72// GCN-LABEL: warning: test_amdhsa_next_free_sgpr_missing73// AMDHSA: error: .amdhsa_next_free_sgpr directive is required74// NONAMDHSA: error: unknown directive75.warning "test_amdhsa_next_free_sgpr_missing"76.amdhsa_kernel test_amdhsa_next_free_sgpr_missing77 .amdhsa_next_free_vgpr 078.end_amdhsa_kernel79 80// ALL-LABEL: warning: test_amdhsa_accum_offset81// NONGFX9A: error: directive requires gfx90a+82// GFX90A: error: .amdhsa_next_free_vgpr directive is required83// NONAMDHSA: error: unknown directive84.warning "test_amdhsa_accum_offset"85.amdhsa_kernel test_amdhsa_accum_offset86 .amdhsa_accum_offset 487.end_amdhsa_kernel88 89// ALL-LABEL: warning: test_amdhsa_accum_offset_missing90// NONGFX9A: error: directive requires gfx90a+91// GFX90A: error: .amdhsa_accum_offset directive is required92// NONAMDHSA: error: unknown directive93.warning "test_amdhsa_accum_offset_missing"94.amdhsa_kernel test_amdhsa_accum_offset_missing95 .amdhsa_next_free_sgpr 096 .amdhsa_next_free_vgpr 097.end_amdhsa_kernel98 99// ALL-LABEL: warning: test_amdhsa_accum_offset_invalid0100// NONGFX9A: error: directive requires gfx90a+101// GFX90A: error: accum_offset should be in range [4..256] in increments of 4102// NONAMDHSA: error: unknown directive103.warning "test_amdhsa_accum_offset_invalid0"104.amdhsa_kernel test_amdhsa_accum_offset_invalid0105 .amdhsa_next_free_sgpr 0106 .amdhsa_next_free_vgpr 0107 .amdhsa_accum_offset 0108.end_amdhsa_kernel109 110// ALL-LABEL: warning: test_amdhsa_accum_offset_invalid5111// NONGFX9A: error: directive requires gfx90a+112// GFX90A: error: accum_offset should be in range [4..256] in increments of 4113// NONAMDHSA: error: unknown directive114.warning "test_amdhsa_accum_offset_invalid5"115.amdhsa_kernel test_amdhsa_accum_offset_invalid5116 .amdhsa_next_free_sgpr 0117 .amdhsa_next_free_vgpr 0118 .amdhsa_accum_offset 5119.end_amdhsa_kernel120 121// ALL-LABEL: warning: test_amdhsa_accum_offset_invalid257122// NONGFX9A: error: directive requires gfx90a+123// GFX90A: error: accum_offset should be in range [4..256] in increments of 4124// NONAMDHSA: error: unknown directive125.warning "test_amdhsa_accum_offset_invalid257"126.amdhsa_kernel test_amdhsa_accum_offset_invalid257127 .amdhsa_next_free_sgpr 0128 .amdhsa_next_free_vgpr 0129 .amdhsa_accum_offset 257130.end_amdhsa_kernel131 132// ALL-LABEL: warning: test_amdhsa_accum_offset_invalid8133// NONGFX9A: error: directive requires gfx90a+134// GFX90A: error: accum_offset exceeds total VGPR allocation135// NONAMDHSA: error: unknown directive136.warning "test_amdhsa_accum_offset_invalid8"137.amdhsa_kernel test_amdhsa_accum_offset_invalid8138 .amdhsa_next_free_sgpr 0139 .amdhsa_next_free_vgpr 0140 .amdhsa_accum_offset 8141.end_amdhsa_kernel142 143// ALL-LABEL: warning: test_amdhsa_tg_split144// NONGFX90A: error: directive requires gfx90a+145// GFX90A: error: .amdhsa_next_free_vgpr directive is required146// NONAMDHSA: error: unknown directive147.warning "test_amdhsa_tg_split"148.amdhsa_kernel test_amdhsa_tg_split149 .amdhsa_tg_split 1150.end_amdhsa_kernel151 152// ALL-LABEL: warning: test_amdhsa_tg_split_invalid153// NONGFX90A: error: directive requires gfx90a+154// GFX90A: error: value out of range155// NONAMDHSA: error: unknown directive156.warning "test_amdhsa_tg_split_invalid"157.amdhsa_kernel test_amdhsa_tg_split_invalid158 .amdhsa_tg_split 5159.end_amdhsa_kernel160 161// ALL-LABEL: warning: test_amdhsa_wavefront_size32162// PREGFX10: error: directive requires gfx10+163// GFX10PLUS: error: .amdhsa_next_free_vgpr directive is required164// NONAMDHSA: error: unknown directive165.warning "test_amdhsa_wavefront_size32"166.amdhsa_kernel test_amdhsa_wavefront_size32167 .amdhsa_wavefront_size32 1168.end_amdhsa_kernel169 170// GCN-LABEL: warning: test_amdhsa_wavefront_size32_invalid171// PREGFX10: error: directive requires gfx10+172// GFX10PLUS: error: value out of range173// NONAMDHSA: error: unknown directive174.warning "test_amdhsa_wavefront_size32_invalid"175.amdhsa_kernel test_amdhsa_wavefront_size32_invalid176 .amdhsa_wavefront_size32 5177.end_amdhsa_kernel178 179// GCN-LABEL: warning: test_amdhsa_workgroup_processor_mode180// NOWGP: error: directive unsupported on [[MCPU]]181// NONAMDHSA: error: unknown directive182.warning "test_amdhsa_workgroup_processor_mode"183.amdhsa_kernel test_amdhsa_workgroup_processor_mode184 .amdhsa_workgroup_processor_mode 1185.end_amdhsa_kernel186 187// GCN-LABEL: warning: test_amdhsa_workgroup_processor_mode_invalid188// NOWGP: error: directive unsupported on [[MCPU]]189// NONAMDHSA: error: unknown directive190.warning "test_amdhsa_workgroup_processor_mode_invalid"191.amdhsa_kernel test_amdhsa_workgroup_processor_mode_invalid192 .amdhsa_workgroup_processor_mode 5193.end_amdhsa_kernel194 195// GCN-LABEL: warning: test_amdhsa_memory_ordered196// PREGFX10: error: directive requires gfx10+197// GFX10PLUS: error: .amdhsa_next_free_vgpr directive is required198// NONAMDHSA: error: unknown directive199.warning "test_amdhsa_memory_ordered"200.amdhsa_kernel test_amdhsa_memory_ordered201 .amdhsa_memory_ordered 1202.end_amdhsa_kernel203 204// GCN-LABEL: warning: test_amdhsa_memory_ordered_invalid205// PREGFX10: error: directive requires gfx10+206// GFX10PLUS: error: value out of range207// NONAMDHSA: error: unknown directive208.warning "test_amdhsa_memory_ordered_invalid"209.amdhsa_kernel test_amdhsa_memory_ordered_invalid210 .amdhsa_memory_ordered 5211.end_amdhsa_kernel212 213// GCN-LABEL: warning: test_amdhsa_forward_progress214// PREGFX10: error: directive requires gfx10+215// GFX10PLUS: error: .amdhsa_next_free_vgpr directive is required216// NONAMDHSA: error: unknown directive217.warning "test_amdhsa_forward_progress"218.amdhsa_kernel test_amdhsa_forward_progress219 .amdhsa_forward_progress 1220.end_amdhsa_kernel221 222// GCN-LABEL: warning: test_amdhsa_forward_progress_invalid223// PREGFX10: error: directive requires gfx10+224// GFX10PLUS: error: value out of range225// NONAMDHSA: error: unknown directive226.warning "test_amdhsa_forward_progress_invalid"227.amdhsa_kernel test_amdhsa_forward_progress_invalid228 .amdhsa_forward_progress 5229.end_amdhsa_kernel230 231// GCN-LABEL: warning: test_amdhsa_shared_vgpr_count_invalid1232// PREGFX10: error: directive requires gfx10 or gfx11233// GFX10: error: .amdhsa_next_free_vgpr directive is required234// GFX11: error: .amdhsa_next_free_vgpr directive is required235// GFX12: error: directive requires gfx10 or gfx11236// NONAMDHSA: error: unknown directive237.warning "test_amdhsa_shared_vgpr_count_invalid1"238.amdhsa_kernel test_amdhsa_shared_vgpr_count_invalid1239 .amdhsa_shared_vgpr_count 8240.end_amdhsa_kernel241 242// GCN-LABEL: warning: test_amdhsa_shared_vgpr_count_invalid2243// PREGFX10: error: directive requires gfx10 or gfx11244// GFX10: error: shared_vgpr_count directive not valid on wavefront size 32245// GFX11: error: shared_vgpr_count directive not valid on wavefront size 32246// GFX12: error: directive requires gfx10 or gfx11247// NONAMDHSA: error: unknown directive248.warning "test_amdhsa_shared_vgpr_count_invalid2"249.amdhsa_kernel test_amdhsa_shared_vgpr_count_invalid2250 .amdhsa_next_free_vgpr 16251 .amdhsa_next_free_sgpr 0252 .amdhsa_shared_vgpr_count 8253 .amdhsa_wavefront_size32 1254.end_amdhsa_kernel255 256// GCN-LABEL: warning: test_amdhsa_shared_vgpr_count_invalid3257// PREGFX10: error: directive requires gfx10 or gfx11258// GFX10: error: value out of range259// GFX11: error: value out of range260// GFX12: error: directive requires gfx10 or gfx11261// NONAMDHSA: error: unknown directive262.warning "test_amdhsa_shared_vgpr_count_invalid3"263.amdhsa_kernel test_amdhsa_shared_vgpr_count_invalid3264 .amdhsa_next_free_vgpr 32265 .amdhsa_next_free_sgpr 0266 .amdhsa_shared_vgpr_count 16267.end_amdhsa_kernel268 269// GCN-LABEL: warning: test_amdhsa_shared_vgpr_count_invalid4270// PREGFX10: error: directive requires gfx10 or gfx11271// GFX10: error: shared_vgpr_count*2 + compute_pgm_rsrc1.GRANULATED_WORKITEM_VGPR_COUNT cannot exceed 63272// GFX11: error: shared_vgpr_count*2 + compute_pgm_rsrc1.GRANULATED_WORKITEM_VGPR_COUNT cannot exceed 63273// GFX12: error: directive requires gfx10 or gfx11274// NONAMDHSA: error: unknown directive275.warning "test_amdhsa_shared_vgpr_count_invalid4"276.amdhsa_kernel test_amdhsa_shared_vgpr_count_invalid4277 .amdhsa_next_free_vgpr 273278 .amdhsa_next_free_sgpr 0279 .amdhsa_shared_vgpr_count 15280.end_amdhsa_kernel281 282// GCN-LABEL: warning: test_amdhsa_inst_pref_size_invalid283// PREGFX10: error: directive requires gfx11+284// NONAMDHSA: error: unknown directive285.warning "test_amdhsa_inst_pref_size_invalid"286.amdhsa_kernel test_amdhsa_inst_pref_size_invalid287 .amdhsa_next_free_vgpr 273288 .amdhsa_next_free_sgpr 0289 .amdhsa_inst_pref_size 15290.end_amdhsa_kernel291 292// GCN-LABEL: warning: test_amdhsa_dx10_clamp_bit293// GFX12: error: directive unsupported on gfx12+294.warning "test_amdhsa_dx10_clamp_bit"295.amdhsa_kernel test_amdhsa_dx10_clamp_bit296 .amdhsa_next_free_vgpr 32297 .amdhsa_next_free_sgpr 0298 .amdhsa_dx10_clamp 1299.end_amdhsa_kernel300 301// GCN-LABEL: warning: test_amdhsa_ieee_mode_bit302// GFX12: error: directive unsupported on gfx12+303.warning "test_amdhsa_ieee_mode_bit"304.amdhsa_kernel test_amdhsa_ieee_mode_bit305 .amdhsa_next_free_vgpr 32306 .amdhsa_next_free_sgpr 0307 .amdhsa_ieee_mode 1308.end_amdhsa_kernel309 310// GCN-LABEL: warning: test_next_free_vgpr_invalid311// AMDHSA: error: .amdgcn.next_free_{v,s}gpr symbols must be absolute expressions312// NONAMDHSA-NOT: error:313.warning "test_next_free_vgpr_invalid"314.set .amdgcn.next_free_vgpr, "foo"315v_mov_b32_e32 v0, s0316 317// GCN-LABEL: warning: test_end318.warning "test_end"319