brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 510c795 Raw
31 lines · plain
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}3 4; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV5; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}6 7; CHECK-SPIRV-DAG: %[[Float:.*]] = OpTypeFloat 328; CHECK-SPIRV-DAG: %[[FloatPtr:.*]] = OpTypePointer Function %[[Float]]9; CHECK-SPIRV: OpInBoundsPtrAccessChain %[[FloatPtr]]10; CHECK-SPIRV: OpInBoundsPtrAccessChain %[[FloatPtr]]11; CHECK-SPIRV: OpSelect %[[FloatPtr]]12; CHECK-SPIRV: OpLoad %[[Float]]13 14%struct = type { [3 x float] }15 16@G = global float 0.017 18define spir_kernel void @bar(i1 %sw) {19entry:20  %var1 = alloca %struct21  store %struct zeroinitializer, ptr %var122  %var2 = alloca %struct23  store %struct zeroinitializer, ptr %var224  %elem1 = getelementptr inbounds [3 x float], ptr %var1, i64 0, i64 025  %elem2 = getelementptr inbounds [3 x float], ptr %var2, i64 0, i64 126  %elem = select i1 %sw, ptr %elem1, ptr %elem227  %res = load float, ptr %elem28  store float %res, ptr @G29  ret void30}31