--Test for signed arithmetic overflow intrinsics, which is for now expectedly failing --Test checking that no duplicate image types are emitted. --------- Co-authored-by: Michal Paszkowski <michal@michalpaszkowski.com>
23 lines
1.2 KiB
LLVM
23 lines
1.2 KiB
LLVM
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
|
|
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
|
|
|
|
; Image types may be represented in two ways while translating to SPIR-V:
|
|
; - OpenCL form, for example, '%opencl.image2d_ro_t',
|
|
; - SPIR-V form, for example, '%spirv.Image._void_1_0_0_0_0_0_0',
|
|
; but it is still one type which should be translated to one SPIR-V type.
|
|
;
|
|
; The test checks that the code below is successfully translated and only one
|
|
; SPIR-V type for images is generated (no duplicate OpTypeImage instructions).
|
|
|
|
; CHECK: %[[#]] = OpTypeImage %[[#]] 2D
|
|
; CHECK-NOT: %[[#]] = OpTypeImage %[[#]] 2D
|
|
|
|
declare spir_func <4 x float> @_Z11read_imagef14ocl_image2d_ro11ocl_samplerDv2_ff(ptr addrspace(1), ptr addrspace(2), <2 x float>, float)
|
|
|
|
define spir_kernel void @read_image(ptr addrspace(1) %srcimg, ptr addrspace(2) %sampler){
|
|
entry:
|
|
%spirvimg.addr = alloca target("spirv.Image", void, 1, 0, 0, 0, 0, 0, 0), align 8
|
|
%val = call <4 x float> @_Z11read_imagef14ocl_image2d_ro11ocl_samplerDv2_ff(ptr addrspace(1) %srcimg, ptr addrspace(2) %sampler, <2 x float> zeroinitializer, float 0.0)
|
|
ret void
|
|
}
|