1// RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip %s | FileCheck %s 2 3spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> { 4 // CHECK-LABEL: @ret 5 spirv.func @ret() -> () "None" { 6 // CHECK: spirv.Return 7 spirv.Return 8 } 9 10 // CHECK-LABEL: @ret_val 11 spirv.func @ret_val() -> (i32) "None" { 12 %0 = spirv.Variable : !spirv.ptr<i32, Function> 13 %1 = spirv.Load "Function" %0 : i32 14 // CHECK: spirv.ReturnValue {{.*}} : i32 15 spirv.ReturnValue %1 : i32 16 } 17 18 // CHECK-LABEL: @unreachable 19 spirv.func @unreachable() "None" { 20 spirv.Return 21 // CHECK-NOT: ^bb 22 ^bb1: 23 // Unreachable blocks will be dropped during serialization. 24 // CHECK-NOT: spirv.Unreachable 25 spirv.Unreachable 26 } 27} 28