brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 1a1b6c4 Raw
54 lines · plain
1; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}3 4; CHECK-DAG: %[[#IMPORT:]] = OpExtInstImport "OpenCL.std"5 6; CHECK-DAG: OpName %[[#CALL1:]] "call1"7; CHECK-DAG: OpName %[[#CALL2:]] "call2"8; CHECK-DAG: OpName %[[#CALL3:]] "call3"9; CHECK-DAG: OpName %[[#CALL4:]] "call4"10; CHECK-DAG: OpName %[[#CALL5:]] "call5"11 12; CHECK-DAG: %[[#INT8:]] = OpTypeInt 8 013; CHECK-DAG: %[[#INT16:]] = OpTypeInt 16 014; CHECK-DAG: %[[#INT32:]] = OpTypeInt 32 015; CHECK-DAG: %[[#INT64:]] = OpTypeInt 64 016; CHECK-DAG: %[[#FLOAT:]] = OpTypeFloat 3217; CHECK-DAG: %[[#VINT8:]] = OpTypeVector %[[#INT8]] 218; CHECK-DAG: %[[#VINT16:]] = OpTypeVector %[[#INT16]] 219; CHECK-DAG: %[[#VINT32:]] = OpTypeVector %[[#INT32]] 220; CHECK-DAG: %[[#VINT64:]] = OpTypeVector %[[#INT64]] 221; CHECK-DAG: %[[#VFLOAT:]] = OpTypeVector %[[#FLOAT]] 222; CHECK-DAG: %[[#PTRINT8:]] = OpTypePointer CrossWorkgroup %[[#INT8]]23; CHECK-DAG: %[[#PTRINT16:]] = OpTypePointer CrossWorkgroup %[[#INT16]]24; CHECK-DAG: %[[#PTRINT32:]] = OpTypePointer CrossWorkgroup %[[#INT32]]25; CHECK-DAG: %[[#PTRINT64:]] = OpTypePointer CrossWorkgroup %[[#INT64]]26; CHECK-DAG: %[[#PTRFLOAT:]] = OpTypePointer CrossWorkgroup %[[#FLOAT]]27 28; CHECK: %[[#OFFSET:]] = OpFunctionParameter %[[#INT64]]29 30define spir_kernel void @test_fn(i64 %offset, ptr addrspace(1) %address) {31; CHECK-DAG: %[[#CASTorPARAMofPTRI8:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#PTRINT8]]{{.*}}32; CHECK-DAG: %[[#CALL1]] = OpExtInst %[[#VINT8]] %[[#IMPORT]] vloadn %[[#OFFSET]] %[[#CASTorPARAMofPTRI8]] 233  %call1 = call spir_func <2 x i8> @_Z6vload2mPU3AS1Kc(i64 %offset, ptr addrspace(1) %address)34; CHECK-DAG: %[[#CASTorPARAMofPTRI16:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#PTRINT16]]{{.*}}35; CHECK-DAG: %[[#CALL2]] = OpExtInst %[[#VINT16]] %[[#IMPORT]] vloadn %[[#OFFSET]] %[[#CASTorPARAMofPTRI16]] 236  %call2 = call spir_func <2 x i16> @_Z6vload2mPU3AS1Ks(i64 %offset, ptr addrspace(1) %address)37; CHECK-DAG: %[[#CASTorPARAMofPTRI32:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#PTRINT32]]{{.*}}38; CHECK-DAG: %[[#CALL3]] = OpExtInst %[[#VINT32]] %[[#IMPORT]] vloadn %[[#OFFSET]] %[[#CASTorPARAMofPTRI32]] 239  %call3 = call spir_func <2 x i32> @_Z6vload2mPU3AS1Ki(i64 %offset, ptr addrspace(1) %address)40; CHECK-DAG: %[[#CASTorPARAMofPTRI64:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#PTRINT64]]{{.*}}41; CHECK-DAG: %[[#CALL4]] = OpExtInst %[[#VINT64]] %[[#IMPORT]] vloadn %[[#OFFSET]] %[[#CASTorPARAMofPTRI64]] 242  %call4 = call spir_func <2 x i64> @_Z6vload2mPU3AS1Kl(i64 %offset, ptr addrspace(1) %address)43; CHECK-DAG: %[[#CASTorPARAMofPTRFLOAT:]] = {{OpBitcast|OpFunctionParameter}}{{.*}}%[[#PTRFLOAT]]{{.*}}44; CHECK-DAG: %[[#CALL5]] = OpExtInst %[[#VFLOAT]] %[[#IMPORT]] vloadn %[[#OFFSET]] %[[#CASTorPARAMofPTRFLOAT]] 245  %call5 = call spir_func <2 x float> @_Z6vload2mPU3AS1Kf(i64 %offset, ptr addrspace(1) %address)46  ret void47}48 49declare spir_func <2 x i8> @_Z6vload2mPU3AS1Kc(i64, ptr addrspace(1))50declare spir_func <2 x i16> @_Z6vload2mPU3AS1Ks(i64, ptr addrspace(1))51declare spir_func <2 x i32> @_Z6vload2mPU3AS1Ki(i64, ptr addrspace(1))52declare spir_func <2 x i64> @_Z6vload2mPU3AS1Kl(i64, ptr addrspace(1))53declare spir_func <2 x float> @_Z6vload2mPU3AS1Kf(i64, ptr addrspace(1))54