brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.8 KiB · 08a9dac Raw
394 lines · plain
1; RUN: llc -mtriple=r600 -mcpu=juniper < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s2 3; === 1 image arg, read_only ===================================================4 5; FUNC-LABEL: {{^}}test_2d_rd_1_0:6; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]7; EG: MOV [[VAL]], literal.x8; EG-NEXT: LSHR9; EG-NEXT: 0(10define amdgpu_kernel void @test_2d_rd_1_0(ptr addrspace(1) %in, ; read_only11                            ptr addrspace(1) %out) {12entry:13  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(14      ptr addrspace(1) %in) #015  store i32 %0, ptr addrspace(1) %out16  ret void17}18 19; FUNC-LABEL: {{^}}test_3d_rd_1_0:20; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]21; EG: MOV [[VAL]], literal.x22; EG-NEXT: LSHR23; EG-NEXT: 0(24define amdgpu_kernel void @test_3d_rd_1_0(ptr addrspace(1) %in, ; read_only25                            ptr addrspace(1) %out) {26entry:27  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(28      ptr addrspace(1) %in) #029  store i32 %0, ptr addrspace(1) %out30  ret void31}32 33; === 1 image arg, write_only ==================================================34 35; FUNC-LABEL: {{^}}test_2d_wr_1_0:36; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]37; EG: MOV [[VAL]], literal.x38; EG-NEXT: LSHR39; EG-NEXT: 0(40define amdgpu_kernel void @test_2d_wr_1_0(ptr addrspace(1) %in, ; write_only41                            ptr addrspace(1) %out) {42entry:43  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(44      ptr addrspace(1) %in) #045  store i32 %0, ptr addrspace(1) %out46  ret void47}48 49; FUNC-LABEL: {{^}}test_3d_wr_1_0:50; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]51; EG: MOV [[VAL]], literal.x52; EG-NEXT: LSHR53; EG-NEXT: 0(54define amdgpu_kernel void @test_3d_wr_1_0(ptr addrspace(1) %in, ; write_only55                            ptr addrspace(1) %out) {56entry:57  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(58      ptr addrspace(1) %in) #059  store i32 %0, ptr addrspace(1) %out60  ret void61}62 63; === 2 image args, read_only ==================================================64 65; FUNC-LABEL: {{^}}test_2d_rd_2_0:66; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]67; EG: MOV [[VAL]], literal.x68; EG-NEXT: LSHR69; EG-NEXT: 0(70define amdgpu_kernel void @test_2d_rd_2_0(ptr addrspace(1) %in1, ; read_only71                            ptr addrspace(1) %in2, ; read_only72                            ptr addrspace(1) %out) {73entry:74  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(75      ptr addrspace(1) %in1) #076  store i32 %0, ptr addrspace(1) %out77  ret void78}79 80; FUNC-LABEL: {{^}}test_2d_rd_2_1:81; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]82; EG: MOV [[VAL]], literal.x83; EG-NEXT: LSHR84; EG-NEXT: 1(85define amdgpu_kernel void @test_2d_rd_2_1(ptr addrspace(1) %in1, ; read_only86                            ptr addrspace(1) %in2, ; read_only87                            ptr addrspace(1) %out) {88entry:89  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(90      ptr addrspace(1) %in2) #091  store i32 %0, ptr addrspace(1) %out92  ret void93}94 95; FUNC-LABEL: {{^}}test_3d_rd_2_0:96; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]97; EG: MOV [[VAL]], literal.x98; EG-NEXT: LSHR99; EG-NEXT: 0(100define amdgpu_kernel void @test_3d_rd_2_0(ptr addrspace(1) %in1, ; read_only101                            ptr addrspace(1) %in2, ; read_only102                            ptr addrspace(1) %out) {103entry:104  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(105      ptr addrspace(1) %in1) #0106  store i32 %0, ptr addrspace(1) %out107  ret void108}109 110; FUNC-LABEL: {{^}}test_3d_rd_2_1:111; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]112; EG: MOV [[VAL]], literal.x113; EG-NEXT: LSHR114; EG-NEXT: 1(115define amdgpu_kernel void @test_3d_rd_2_1(ptr addrspace(1) %in1, ; read_only116                            ptr addrspace(1) %in2, ; read_only117                            ptr addrspace(1) %out) {118entry:119  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(120      ptr addrspace(1) %in2) #0121  store i32 %0, ptr addrspace(1) %out122  ret void123}124 125; === 2 image args, write_only =================================================126 127; FUNC-LABEL: {{^}}test_2d_wr_2_0:128; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]129; EG: MOV [[VAL]], literal.x130; EG-NEXT: LSHR131; EG-NEXT: 0(132define amdgpu_kernel void @test_2d_wr_2_0(ptr addrspace(1) %in1, ; write_only133                            ptr addrspace(1) %in2, ; write_only134                            ptr addrspace(1) %out) {135entry:136  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(137      ptr addrspace(1) %in1) #0138  store i32 %0, ptr addrspace(1) %out139  ret void140}141 142; FUNC-LABEL: {{^}}test_2d_wr_2_1:143; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]144; EG: MOV [[VAL]], literal.x145; EG-NEXT: LSHR146; EG-NEXT: 1(147define amdgpu_kernel void @test_2d_wr_2_1(ptr addrspace(1) %in1, ; write_only148                            ptr addrspace(1) %in2, ; write_only149                            ptr addrspace(1) %out) {150entry:151  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(152      ptr addrspace(1) %in2) #0153  store i32 %0, ptr addrspace(1) %out154  ret void155}156 157; FUNC-LABEL: {{^}}test_3d_wr_2_0:158; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]159; EG: MOV [[VAL]], literal.x160; EG-NEXT: LSHR161; EG-NEXT: 0(162define amdgpu_kernel void @test_3d_wr_2_0(ptr addrspace(1) %in1, ; write_only163                            ptr addrspace(1) %in2, ; write_only164                            ptr addrspace(1) %out) {165entry:166  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(167      ptr addrspace(1) %in1) #0168  store i32 %0, ptr addrspace(1) %out169  ret void170}171 172; FUNC-LABEL: {{^}}test_3d_wr_2_1:173; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]174; EG: MOV [[VAL]], literal.x175; EG-NEXT: LSHR176; EG-NEXT: 1(177define amdgpu_kernel void @test_3d_wr_2_1(ptr addrspace(1) %in1, ; write_only178                            ptr addrspace(1) %in2, ; write_only179                            ptr addrspace(1) %out) {180entry:181  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(182      ptr addrspace(1) %in2) #0183  store i32 %0, ptr addrspace(1) %out184  ret void185}186 187; === 3 image args, read_only ==================================================188 189; FUNC-LABEL: {{^}}test_2d_rd_3_0:190; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]191; EG: MOV [[VAL]], literal.x192; EG-NEXT: LSHR193; EG-NEXT: 2(194define amdgpu_kernel void @test_2d_rd_3_0(ptr addrspace(1) %in1, ; read_only195                            ptr addrspace(1) %in2, ; read_only196                            ptr addrspace(1) %in3, ; read_only197                            ptr addrspace(1) %out) {198entry:199  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(200      ptr addrspace(1) %in3) #0201  store i32 %0, ptr addrspace(1) %out202  ret void203}204 205 206; FUNC-LABEL: {{^}}test_3d_rd_3_0:207; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]208; EG: MOV [[VAL]], literal.x209; EG-NEXT: LSHR210; EG-NEXT: 2(211define amdgpu_kernel void @test_3d_rd_3_0(ptr addrspace(1) %in1, ; read_only212                            ptr addrspace(1) %in2, ; read_only213                            ptr addrspace(1) %in3, ; read_only214                            ptr addrspace(1) %out) {215entry:216  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(217      ptr addrspace(1) %in3) #0218  store i32 %0, ptr addrspace(1) %out219  ret void220}221 222; === 3 image args, write_only =================================================223 224; FUNC-LABEL: {{^}}test_2d_wr_3_0:225; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]226; EG: MOV [[VAL]], literal.x227; EG-NEXT: LSHR228; EG-NEXT: 2(229define amdgpu_kernel void @test_2d_wr_3_0(ptr addrspace(1) %in1, ; write_only230                            ptr addrspace(1) %in2, ; write_only231                            ptr addrspace(1) %in3, ; write_only232                            ptr addrspace(1) %out) {233entry:234  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(235      ptr addrspace(1) %in3) #0236  store i32 %0, ptr addrspace(1) %out237  ret void238}239 240 241; FUNC-LABEL: {{^}}test_3d_wr_3_0:242; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]243; EG: MOV [[VAL]], literal.x244; EG-NEXT: LSHR245; EG-NEXT: 2(246define amdgpu_kernel void @test_3d_wr_3_0(ptr addrspace(1) %in1, ; write_only247                            ptr addrspace(1) %in2, ; write_only248                            ptr addrspace(1) %in3, ; write_only249                            ptr addrspace(1) %out) {250entry:251  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(252      ptr addrspace(1) %in3) #0253  store i32 %0, ptr addrspace(1) %out254  ret void255}256 257; === 3 image args, mixed ======================================================258 259; FUNC-LABEL: {{^}}test_2d_mix_3_0:260; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]261; EG: MOV [[VAL]], literal.x262; EG-NEXT: LSHR263; EG-NEXT: 1(264define amdgpu_kernel void @test_2d_mix_3_0(ptr addrspace(1) %in1, ; write_only265                             ptr addrspace(1) %in2, ; read_only266                             ptr addrspace(1) %in3, ; read_only267                             ptr addrspace(1) %out) {268entry:269  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(270      ptr addrspace(1) %in3) #0271  store i32 %0, ptr addrspace(1) %out272  ret void273}274 275; FUNC-LABEL: {{^}}test_3d_mix_3_0:276; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]277; EG: MOV [[VAL]], literal.x278; EG-NEXT: LSHR279; EG-NEXT: 1(280define amdgpu_kernel void @test_3d_mix_3_0(ptr addrspace(1) %in1, ; write_only281                             ptr addrspace(1) %in2, ; read_only282                             ptr addrspace(1) %in3, ; read_only283                             ptr addrspace(1) %out) {284entry:285  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(286      ptr addrspace(1) %in3) #0287  store i32 %0, ptr addrspace(1) %out288  ret void289}290 291; FUNC-LABEL: {{^}}test_2d_mix_3_1:292; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]293; EG: MOV [[VAL]], literal.x294; EG-NEXT: LSHR295; EG-NEXT: 1(296define amdgpu_kernel void @test_2d_mix_3_1(ptr addrspace(1) %in1, ; write_only297                             ptr addrspace(1) %in2, ; read_only298                             ptr addrspace(1) %in3, ; write_only299                             ptr addrspace(1) %out) {300entry:301  %0 = call i32 @llvm.OpenCL.image.get.resource.id.2d(302      ptr addrspace(1) %in3) #0303  store i32 %0, ptr addrspace(1) %out304  ret void305}306 307; FUNC-LABEL: {{^}}test_3d_mix_3_1:308; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+\.X]]309; EG: MOV [[VAL]], literal.x310; EG-NEXT: LSHR311; EG-NEXT: 1(312define amdgpu_kernel void @test_3d_mix_3_1(ptr addrspace(1) %in1, ; write_only313                             ptr addrspace(1) %in2, ; read_only314                             ptr addrspace(1) %in3, ; write_only315                             ptr addrspace(1) %out) {316entry:317  %0 = call i32 @llvm.OpenCL.image.get.resource.id.3d(318      ptr addrspace(1) %in3) #0319  store i32 %0, ptr addrspace(1) %out320  ret void321}322 323 324%opencl.image2d_t = type opaque325%opencl.image3d_t = type opaque326 327declare i32 @llvm.OpenCL.image.get.resource.id.2d(ptr addrspace(1)) #0328declare i32 @llvm.OpenCL.image.get.resource.id.3d(ptr addrspace(1)) #0329 330attributes #0 = { readnone }331 332!opencl.kernels = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13,333                    !14, !15, !16, !17, !18, !19}334!0 = !{ptr @test_2d_rd_1_0,335       !110, !120, !130, !140, !150}336!1 = !{ptr @test_3d_rd_1_0,337       !110, !120, !131, !141, !150}338!2 = !{ptr @test_2d_wr_1_0,339       !110, !121, !130, !140, !150}340!3 = !{ptr @test_3d_wr_1_0,341       !110, !121, !131, !141, !150}342!110 = !{!"kernel_arg_addr_space", i32 1, i32 1}343!120 = !{!"kernel_arg_access_qual", !"read_only", !"none"}344!121 = !{!"kernel_arg_access_qual", !"write_only", !"none"}345!130 = !{!"kernel_arg_type", !"image2d_t", !"int*"}346!131 = !{!"kernel_arg_type", !"image3d_t", !"int*"}347!140 = !{!"kernel_arg_base_type", !"image2d_t", !"int*"}348!141 = !{!"kernel_arg_base_type", !"image3d_t", !"int*"}349!150 = !{!"kernel_arg_type_qual", !"", !""}350 351!4  = !{ptr @test_2d_rd_2_0, !112, !122, !132, !142, !152}352!5  = !{ptr @test_2d_rd_2_1, !112, !122, !132, !142, !152}353!6  = !{ptr @test_3d_rd_2_0, !112, !122, !133, !143, !152}354!7  = !{ptr @test_3d_rd_2_1, !112, !122, !133, !143, !152}355!8  = !{ptr @test_2d_wr_2_0, !112, !123, !132, !142, !152}356!9  = !{ptr @test_2d_wr_2_1, !112, !123, !132, !142, !152}357!10 = !{ptr @test_3d_wr_2_0, !112, !123, !133, !143, !152}358!11 = !{ptr @test_3d_wr_2_1, !112, !123, !133, !143, !152}359!112 = !{!"kernel_arg_addr_space", i32 1, i32 1, i32 1}360!122 = !{!"kernel_arg_access_qual", !"read_only", !"read_only", !"none"}361!123 = !{!"kernel_arg_access_qual", !"write_only", !"write_only", !"none"}362!132 = !{!"kernel_arg_type", !"image2d_t", !"image2d_t", !"int*"}363!133 = !{!"kernel_arg_type", !"image3d_t", !"image3d_t", !"int*"}364!142 = !{!"kernel_arg_base_type", !"image2d_t", !"image2d_t", !"int*"}365!143 = !{!"kernel_arg_base_type", !"image3d_t", !"image3d_t", !"int*"}366!152 = !{!"kernel_arg_type_qual", !"", !"", !""}367 368!12 = !{ptr @test_2d_rd_3_0,369              !114, !124, !134, !144, !154}370!13 = !{ptr @test_3d_rd_3_0,371              !114, !124, !135, !145, !154}372!14 = !{ptr @test_2d_wr_3_0,373              !114, !125, !134, !144, !154}374!15 = !{ptr @test_3d_wr_3_0,375              !114, !125, !135, !145, !154}376!16 = !{ptr @test_2d_mix_3_0,377              !114, !126, !134, !144, !154}378!17 = !{ptr @test_3d_mix_3_0,379              !114, !126, !135, !145, !154}380!18 = !{ptr @test_2d_mix_3_1,381              !114, !127, !134, !144, !154}382!19 = !{ptr @test_3d_mix_3_1,383              !114, !127, !135, !145, !154}384!114 = !{!"kernel_arg_addr_space", i32 1, i32 1, i32 1, i32 1}385!124 = !{!"kernel_arg_access_qual", !"read_only", !"read_only", !"read_only", !"none"}386!125 = !{!"kernel_arg_access_qual", !"write_only", !"write_only", !"write_only", !"none"}387!126 = !{!"kernel_arg_access_qual", !"write_only", !"read_only", !"read_only", !"none"}388!127 = !{!"kernel_arg_access_qual", !"write_only", !"read_only", !"write_only", !"none"}389!134 = !{!"kernel_arg_type", !"image2d_t", !"image3d_t", !"image2d_t", !"int*"}390!135 = !{!"kernel_arg_type", !"image3d_t", !"image2d_t", !"image3d_t", !"int*"}391!144 = !{!"kernel_arg_base_type", !"image2d_t", !"image3d_t", !"image2d_t", !"int*"}392!145 = !{!"kernel_arg_base_type", !"image3d_t", !"image2d_t", !"image3d_t", !"int*"}393!154 = !{!"kernel_arg_type_qual", !"", !"", !"", !""}394