1; RUN: llc -mtriple=amdgcn--amdpal -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SI %s 2; RUN: llc -mtriple=amdgcn--amdpal -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s 3; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GFX9 -enable-var-scope %s 4 5; amdpal compute shader: check for 0x2e12 (COMPUTE_PGM_RSRC1) in pal metadata 6; SI-DAG: 0x2e12 (COMPUTE_PGM_RSRC1): 0x2c0000{{$}} 7; VI-DAG: 0x2e12 (COMPUTE_PGM_RSRC1): 0x2c02c0{{$}} 8; GFX9-DAG: 0x2e12 (COMPUTE_PGM_RSRC1): 0x2c0000{{$}} 9define amdgpu_cs half @cs_amdpal(half %arg0) #0 { 10 %add = fadd half %arg0, 1.0 11 ret half %add 12} 13 14; amdpal evaluation shader: check for 0x2cca (SPI_SHADER_PGM_RSRC1_ES) in pal metadata 15; SI-DAG: 0x2cca (SPI_SHADER_PGM_RSRC1_ES): 0x2c0000{{$}} 16; VI-DAG: 0x2cca (SPI_SHADER_PGM_RSRC1_ES): 0x2c02c0{{$}} 17; GFX9-DAG: 0x2cca (SPI_SHADER_PGM_RSRC1_ES): 0x2c0000{{$}} 18define amdgpu_es half @es_amdpal(half %arg0) #0 { 19 %add = fadd half %arg0, 1.0 20 ret half %add 21} 22 23; amdpal geometry shader: check for 0x2c8a (SPI_SHADER_PGM_RSRC1_GS) in pal metadata 24; SI-DAG: 0x2c8a (SPI_SHADER_PGM_RSRC1_GS): 0x2c0000{{$}} 25; VI-DAG: 0x2c8a (SPI_SHADER_PGM_RSRC1_GS): 0x2c02c0{{$}} 26; GFX9-DAG: 0x2c8a (SPI_SHADER_PGM_RSRC1_GS): 0x2c0000{{$}} 27define amdgpu_gs half @gs_amdpal(half %arg0) #0 { 28 %add = fadd half %arg0, 1.0 29 ret half %add 30} 31 32; amdpal hull shader: check for 0x2d0a (SPI_SHADER_PGM_RSRC1_HS) in pal metadata 33; SI-DAG: 0x2d0a (SPI_SHADER_PGM_RSRC1_HS): 0x2c0000{{$}} 34; VI-DAG: 0x2d0a (SPI_SHADER_PGM_RSRC1_HS): 0x2c02c0{{$}} 35; GFX9-DAG: 0x2d0a (SPI_SHADER_PGM_RSRC1_HS): 0x2c0000{{$}} 36define amdgpu_hs half @hs_amdpal(half %arg0) #0 { 37 %add = fadd half %arg0, 1.0 38 ret half %add 39} 40 41; amdpal load shader: check for 0x2d4a (SPI_SHADER_PGM_RSRC1_LS) in pal metadata 42; SI-DAG: 0x2d4a (SPI_SHADER_PGM_RSRC1_LS): 0x2c0000{{$}} 43; VI-DAG: 0x2d4a (SPI_SHADER_PGM_RSRC1_LS): 0x2c02c0{{$}} 44; GFX9-DAG: 0x2d4a (SPI_SHADER_PGM_RSRC1_LS): 0x2c0000{{$}} 45define amdgpu_ls half @ls_amdpal(half %arg0) #0 { 46 %add = fadd half %arg0, 1.0 47 ret half %add 48} 49 50; amdpal pixel shader: check for 0x2c0a (SPI_SHADER_PGM_RSRC1_PS) in pal metadata 51; below. 52; SI-DAG: 0x2c0a (SPI_SHADER_PGM_RSRC1_PS): 0x2c0000{{$}} 53; VI-DAG: 0x2c0a (SPI_SHADER_PGM_RSRC1_PS): 0x2c02c0{{$}} 54; GFX9-DAG: 0x2c0a (SPI_SHADER_PGM_RSRC1_PS): 0x2c0000{{$}} 55define amdgpu_ps half @ps_amdpal(half %arg0) #0 { 56 %add = fadd half %arg0, 1.0 57 ret half %add 58} 59 60; amdpal vertex shader: check for 45352 (SPI_SHADER_PGM_RSRC1_VS) in pal metadata 61; SI-DAG: 0x2c4a (SPI_SHADER_PGM_RSRC1_VS): 0x2c0000{{$}} 62; VI-DAG: 0x2c4a (SPI_SHADER_PGM_RSRC1_VS): 0x2c02c0{{$}} 63; GFX9-DAG: 0x2c4a (SPI_SHADER_PGM_RSRC1_VS): 0x2c0000{{$}} 64define amdgpu_vs half @vs_amdpal(half %arg0) #0 { 65 %add = fadd half %arg0, 1.0 66 ret half %add 67} 68 69attributes #0 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" } 70 71; amdgpu.pal.metadata.msgpack represents this: 72; 73; .amdgpu_pal_metadata 74; --- 75; amdpal.pipelines: 76; - .internal_pipeline_hash: 77; - 0x123456789abcdef0 78; - 0xfedcba9876543210 79; .registers: 80; 0x2c0b (SPI_SHADER_PGM_RSRC2_PS): 0x42000000 81; ... 82; .end_amdgpu_pal_metadata 83 84!amdgpu.pal.metadata.msgpack = !{!0} 85!0 = !{!"\81\b0\61\6d\64\70\61\6c\2e\70\69\70\65\6c\69\6e\65\73\91\82\b7\2e\69\6e\74\65\72\6e\61\6c\5f\70\69\70\65\6c\69\6e\65\5f\68\61\73\68\92\cf\12\34\56\78\9a\bc\de\f0\cf\fe\dc\ba\98\76\54\32\10\aa\2e\72\65\67\69\73\74\65\72\73\81\cd\2c\0b\ce\42\00\00\00"}; 86