1// RUN: not llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx803 -mattr=+xnack -show-encoding %s 2>&1 >/dev/null | FileCheck %s --check-prefixes=GCN,GFX8,NONGFX10,AMDHSA 2// RUN: not llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx1010 -mattr=+xnack -show-encoding %s 2>&1 >/dev/null | FileCheck %s --check-prefixes=GCN,GFX10,AMDHSA 3// RUN: not llvm-mc -triple amdgcn-amd- -mcpu=gfx803 -mattr=+xnack -show-encoding %s 2>&1 >/dev/null | FileCheck %s --check-prefixes=GCN,NONAMDHSA 4 5.text 6 7// GCN-LABEL: warning: test_target 8// GFX8-NOT: error: 9// GFX10: error: target must match options 10// NONAMDHSA: error: unknown directive 11.warning "test_target" 12.amdgcn_target "amdgcn-amd-amdhsa--gfx803+xnack" 13 14// GCN-LABEL: warning: test_amdhsa_kernel_no_name 15// GCN: error: unknown directive 16.warning "test_amdhsa_kernel_no_name" 17.amdhsa_kernel 18.end_amdhsa_kernel 19 20// GCN-LABEL: warning: test_amdhsa_kernel_empty 21// AMDHSA-NOT: error: unknown directive 22// NONAMDHSA: error: unknown directive 23.warning "test_amdhsa_kernel_empty" 24.amdhsa_kernel test_amdhsa_kernel_empty 25.end_amdhsa_kernel 26 27// GCN-LABEL: warning: test_amdhsa_kernel_unknown_directive 28// AMDHSA: error: expected .amdhsa_ directive or .end_amdhsa_kernel 29// NONAMDHSA: error: unknown directive 30.warning "test_amdhsa_kernel_unknown_directive" 31.amdhsa_kernel test_amdhsa_kernel_unknown_directive 32 1 33.end_amdhsa_kernel 34 35// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_invalid_size 36// AMDHSA: error: value out of range 37// NONAMDHSA: error: unknown directive 38.warning "test_amdhsa_group_segment_fixed_size_invalid_size" 39.amdhsa_kernel test_amdhsa_group_segment_fixed_size_invalid_size 40 .amdhsa_group_segment_fixed_size -1 41.end_amdhsa_kernel 42 43// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_invalid_expression 44// AMDHSA: error: value out of range 45// NONAMDHSA: error: unknown directive 46.warning "test_amdhsa_group_segment_fixed_size_invalid_expression" 47.amdhsa_kernel test_amdhsa_group_segment_fixed_size_invalid_expression 48 .amdhsa_group_segment_fixed_size 10000000000 + 1 49.end_amdhsa_kernel 50 51// GCN-LABEL: warning: test_amdhsa_group_segment_fixed_size_repeated 52// AMDHSA: error: .amdhsa_ directives cannot be repeated 53// NONAMDHSA-: error: unknown directive 54.warning "test_amdhsa_group_segment_fixed_size_repeated" 55.amdhsa_kernel test_amdhsa_group_segment_fixed_size_repeated 56 .amdhsa_group_segment_fixed_size 1 57 .amdhsa_group_segment_fixed_size 1 58.end_amdhsa_kernel 59 60// GCN-LABEL: warning: test_amdhsa_next_free_vgpr_missing 61// AMDHSA: error: .amdhsa_next_free_vgpr directive is required 62// NONAMDHSA: error: unknown directive 63.warning "test_amdhsa_next_free_vgpr_missing" 64.amdhsa_kernel test_amdhsa_next_free_vgpr_missing 65.end_amdhsa_kernel 66 67// GCN-LABEL: warning: test_amdhsa_next_free_sgpr_missing 68// AMDHSA: error: .amdhsa_next_free_sgpr directive is required 69// NONAMDHSA: error: unknown directive 70.warning "test_amdhsa_next_free_sgpr_missing" 71.amdhsa_kernel test_amdhsa_next_free_sgpr_missing 72 .amdhsa_next_free_vgpr 0 73.end_amdhsa_kernel 74 75// GCN-LABEL: warning: test_amdhsa_wavefront_size32 76// NONGFX10: error: directive requires gfx10+ 77// GFX10: error: .amdhsa_next_free_vgpr directive is required 78// NONAMDHSA: error: unknown directive 79.warning "test_amdhsa_wavefront_size32" 80.amdhsa_kernel test_amdhsa_wavefront_size32 81 .amdhsa_wavefront_size32 1 82.end_amdhsa_kernel 83 84// GCN-LABEL: warning: test_amdhsa_wavefront_size32_invalid 85// NONGFX10: error: directive requires gfx10+ 86// GFX10: error: value out of range 87// NONAMDHSA: error: unknown directive 88.warning "test_amdhsa_wavefront_size32_invalid" 89.amdhsa_kernel test_amdhsa_wavefront_size32_invalid 90 .amdhsa_wavefront_size32 5 91.end_amdhsa_kernel 92 93// GCN-LABEL: warning: test_amdhsa_workgroup_processor_mode 94// NONGFX10: error: directive requires gfx10+ 95// GFX10: error: .amdhsa_next_free_vgpr directive is required 96// NONAMDHSA: error: unknown directive 97.warning "test_amdhsa_workgroup_processor_mode" 98.amdhsa_kernel test_amdhsa_workgroup_processor_mode 99 .amdhsa_workgroup_processor_mode 1 100.end_amdhsa_kernel 101 102// GCN-LABEL: warning: test_amdhsa_workgroup_processor_mode_invalid 103// NONGFX10: error: directive requires gfx10+ 104// GFX10: error: value out of range 105// NONAMDHSA: error: unknown directive 106.warning "test_amdhsa_workgroup_processor_mode_invalid" 107.amdhsa_kernel test_amdhsa_workgroup_processor_mode_invalid 108 .amdhsa_workgroup_processor_mode 5 109.end_amdhsa_kernel 110 111// GCN-LABEL: warning: test_amdhsa_memory_ordered 112// NONGFX10: error: directive requires gfx10+ 113// GFX10: error: .amdhsa_next_free_vgpr directive is required 114// NONAMDHSA: error: unknown directive 115.warning "test_amdhsa_memory_ordered" 116.amdhsa_kernel test_amdhsa_memory_ordered 117 .amdhsa_memory_ordered 1 118.end_amdhsa_kernel 119 120// GCN-LABEL: warning: test_amdhsa_memory_ordered_invalid 121// NONGFX10: error: directive requires gfx10+ 122// GFX10: error: value out of range 123// NONAMDHSA: error: unknown directive 124.warning "test_amdhsa_memory_ordered_invalid" 125.amdhsa_kernel test_amdhsa_memory_ordered_invalid 126 .amdhsa_memory_ordered 5 127.end_amdhsa_kernel 128 129// GCN-LABEL: warning: test_amdhsa_forward_progress 130// NONGFX10: error: directive requires gfx10+ 131// GFX10: error: .amdhsa_next_free_vgpr directive is required 132// NONAMDHSA: error: unknown directive 133.warning "test_amdhsa_forward_progress" 134.amdhsa_kernel test_amdhsa_forward_progress 135 .amdhsa_forward_progress 1 136.end_amdhsa_kernel 137 138// GCN-LABEL: warning: test_amdhsa_forward_progress_invalid 139// NONGFX10: error: directive requires gfx10+ 140// GFX10: error: value out of range 141// NONAMDHSA: error: unknown directive 142.warning "test_amdhsa_forward_progress_invalid" 143.amdhsa_kernel test_amdhsa_forward_progress_invalid 144 .amdhsa_forward_progress 5 145.end_amdhsa_kernel 146 147// GCN-LABEL: warning: test_next_free_vgpr_invalid 148// AMDHSA: error: .amdgcn.next_free_{v,s}gpr symbols must be absolute expressions 149// NONAMDHSA-NOT: error: 150.warning "test_next_free_vgpr_invalid" 151.set .amdgcn.next_free_vgpr, "foo" 152v_mov_b32_e32 v0, s0 153 154// GCN-LABEL: warning: test_end 155.warning "test_end" 156