77 lines · plain
1; Check names and decoration of global variables.2 3; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s -check-prefixes=CHECK,OCL4; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}5 6; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s -check-prefixes=CHECK,OCL7; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}8 9; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-vulkan %s -o - | FileCheck %s -check-prefixes=CHECK,VK10; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-vulkan %s -o - -filetype=obj | spirv-val %}11 12; CHECK-DAG: OpName %[[#id18:]] "G1"13; CHECK-DAG: OpName %[[#id22:]] "g1"14; CHECK-DAG: OpName %[[#id23:]] "g2"15; CHECK-DAG: OpName %[[#id27:]] "g4"16; CHECK-DAG: OpName %[[#id30:]] "c1"17; CHECK-DAG: OpName %[[#id31:]] "n_t"18; CHECK-DAG: OpName %[[#id32:]] "w"19; CHECK-DAG: OpName %[[#id34:]] "a.b"20; CHECK-DAG: OpName %[[#id35:]] "e"21; CHECK-DAG: OpName %[[#id36:]] "y.z"22; CHECK-DAG: OpName %[[#id38:]] "x"23 24; CHECK-NOT: OpDecorate %[[#id18]] LinkageAttributes25; OCL-DAG: OpDecorate %[[#id18]] Constant26; OCL-DAG: OpDecorate %[[#id22]] Alignment 427; VK-NOT: OpDecorate {{.*}} Constant28; VK-NOT: OpDecorate {{.*}} Alignment29; CHECK-DAG: OpDecorate %[[#id22]] LinkageAttributes "g1" Export30; OCL-DAG: OpDecorate %[[#id23]] Alignment 431; OCL-DAG: OpDecorate %[[#id27]] Alignment 432; VK-NOT: OpDecorate {{.*}} Constant33; VK-NOT: OpDecorate {{.*}} Alignment34; CHECK-DAG: OpDecorate %[[#id27]] LinkageAttributes "g4" Export35; OCL-DAG: OpDecorate %[[#id30]] Constant36; OCL-DAG: OpDecorate %[[#id30]] Alignment 437; VK-NOT: OpDecorate {{.*}} Constant38; VK-NOT: OpDecorate {{.*}} Alignment39; CHECK-DAG: OpDecorate %[[#id30]] LinkageAttributes "c1" Export40; OCL-DAG: OpDecorate %[[#id31]] Constant41; VK-NOT: OpDecorate {{.*}} Constant42; VK-NOT: OpDecorate {{.*}} Alignment43; CHECK-DAG: OpDecorate %[[#id31]] LinkageAttributes "n_t" Import44; OCL-DAG: OpDecorate %[[#id32]] Constant45; OCL-DAG: OpDecorate %[[#id32]] Alignment 446; VK-NOT: OpDecorate {{.*}} Constant47; VK-NOT: OpDecorate {{.*}} Alignment48; CHECK-DAG: OpDecorate %[[#id32]] LinkageAttributes "w" Export49; OCL-DAG: OpDecorate %[[#id34]] Constant50; OCL-DAG: OpDecorate %[[#id34]] Alignment 451; VK-NOT: OpDecorate {{.*}} Constant52; VK-NOT: OpDecorate {{.*}} Alignment53; CHECK-DAG: OpDecorate %[[#id35]] LinkageAttributes "e" Import54; OCL-DAG: OpDecorate %[[#id36]] Alignment 455; OCL-DAG: OpDecorate %[[#id38]] Constant56; OCL-DAG: OpDecorate %[[#id38]] Alignment 457; VK-NOT: OpDecorate {{.*}} Constant58; VK-NOT: OpDecorate {{.*}} Alignment59 60%"class.sycl::_V1::nd_item" = type { i8 }61 62@G1 = private unnamed_addr addrspace(1) constant %"class.sycl::_V1::nd_item" poison, align 163@g1 = addrspace(1) global i32 1, align 464@g2 = internal addrspace(1) global i32 2, align 465@g4 = common addrspace(1) global i32 0, align 466@c1 = addrspace(2) constant [2 x i32] [i32 0, i32 1], align 467@n_t = external addrspace(2) constant [256 x i32]68@w = addrspace(1) constant i32 0, align 469@a.b = internal addrspace(2) constant [2 x i32] [i32 2, i32 3], align 470@e = external addrspace(1) global i3271@y.z = internal addrspace(1) global i32 0, align 472@x = internal addrspace(2) constant float 1.000000e+00, align 473 74define internal spir_func void @foo() {75 ret void76}77