brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 009c8d0 Raw
98 lines · plain
1; RUN: llc -mtriple=r600 -mcpu=redwood < %s | \2; RUN: FileCheck -check-prefix=EG -check-prefix=FUNC %s3 4; FUNC-LABEL: {{^}}tgid_x:5; EG: MEM_RAT_CACHELESS STORE_RAW T1.X6define amdgpu_kernel void @tgid_x(ptr addrspace(1) %out) {7entry:8  %0 = call i32 @llvm.r600.read.tgid.x() #09  store i32 %0, ptr addrspace(1) %out10  ret void11}12 13; FUNC-LABEL: {{^}}tgid_y:14; EG: MEM_RAT_CACHELESS STORE_RAW [[REG:T[0-9]+]].X15; EG: MOV [[REG]].X, T1.Y16define amdgpu_kernel void @tgid_y(ptr addrspace(1) %out) {17entry:18  %0 = call i32 @llvm.r600.read.tgid.y() #019  store i32 %0, ptr addrspace(1) %out20  ret void21}22 23; FUNC-LABEL: {{^}}tgid_z:24; EG: MEM_RAT_CACHELESS STORE_RAW [[REG:T[0-9]+]].X25; EG: MOV [[REG]].X, T1.Z26define amdgpu_kernel void @tgid_z(ptr addrspace(1) %out) {27entry:28  %0 = call i32 @llvm.r600.read.tgid.z() #029  store i32 %0, ptr addrspace(1) %out30  ret void31}32 33; FUNC-LABEL: {{^}}tidig_x:34; EG: MEM_RAT_CACHELESS STORE_RAW T0.X35define amdgpu_kernel void @tidig_x(ptr addrspace(1) %out) {36entry:37  %0 = call i32 @llvm.r600.read.tidig.x() #038  store i32 %0, ptr addrspace(1) %out39  ret void40}41 42; FUNC-LABEL: {{^}}tidig_y:43; EG: MEM_RAT_CACHELESS STORE_RAW [[REG:T[0-9]+]].X44; EG: MOV [[REG]].X, T0.Y45define amdgpu_kernel void @tidig_y(ptr addrspace(1) %out) {46entry:47  %0 = call i32 @llvm.r600.read.tidig.y() #048  store i32 %0, ptr addrspace(1) %out49  ret void50}51 52; FUNC-LABEL: {{^}}tidig_z:53; EG: MEM_RAT_CACHELESS STORE_RAW [[REG:T[0-9]+]].X54; EG: MOV [[REG]].X, T0.Z55define amdgpu_kernel void @tidig_z(ptr addrspace(1) %out) {56entry:57  %0 = call i32 @llvm.r600.read.tidig.z() #058  store i32 %0, ptr addrspace(1) %out59  ret void60}61 62; FUNC-LABEL: {{^}}test_implicit:63; 36 prepended implicit bytes + 4(out pointer) + 4*4 = 56 == KC0[3].Z64; EG: MEM_RAT_CACHELESS STORE_RAW [[VAL:T[0-9]+.[XYZW]]], [[PTR:T[0-9]+.[XYZW]]]65; EG-NOT: VTX_READ66; EG-DAG: MOV {{\*?}} [[VAL]], KC0[3].Z67; EG-DAG: LSHR {{\*? *}}[[PTR]], KC0[2].Y, literal68define amdgpu_kernel void @test_implicit(ptr addrspace(1) %out) #1 {69  %implicitarg.ptr = call noalias ptr addrspace(7) @llvm.r600.implicitarg.ptr()70  %gep = getelementptr i32, ptr addrspace(7) %implicitarg.ptr, i32 471  %value = load i32, ptr addrspace(7) %gep72  store i32 %value, ptr addrspace(1) %out73  ret void74}75 76; FUNC-LABEL: {{^}}test_implicit_dyn:77; 36 prepended implicit bytes + 8(out pointer + in) = 4478; EG: VTX_READ_32 {{T[0-9]+\.[XYZW]}}, {{T[0-9]+\.[XYZW]}}, 44, #379define amdgpu_kernel void @test_implicit_dyn(ptr addrspace(1) %out, i32 %in) #1 {80  %implicitarg.ptr = call noalias ptr addrspace(7) @llvm.r600.implicitarg.ptr()81  %gep = getelementptr i32, ptr addrspace(7) %implicitarg.ptr, i32 %in82  %value = load i32, ptr addrspace(7) %gep83  store i32 %value, ptr addrspace(1) %out84  ret void85}86 87declare ptr addrspace(7) @llvm.r600.implicitarg.ptr() #088 89declare i32 @llvm.r600.read.tgid.x() #090declare i32 @llvm.r600.read.tgid.y() #091declare i32 @llvm.r600.read.tgid.z() #092 93declare i32 @llvm.r600.read.tidig.x() #094declare i32 @llvm.r600.read.tidig.y() #095declare i32 @llvm.r600.read.tidig.z() #096 97attributes #0 = { readnone }98