|
| 1 | +; RUN: llvm-as %s -o %t.bc |
| 2 | + |
| 3 | +; RUN: llvm-spirv %t.bc -spirv-text --spirv-ext=-SPV_KHR_bit_instructions -o %t.txt |
| 4 | +; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-COMMON,CHECK-WITHOUT-EXT |
| 5 | + |
| 6 | +; RUN: llvm-spirv %t.bc -spirv-text --spirv-ext=+SPV_KHR_bit_instructions -o %t.txt |
| 7 | +; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-COMMON,CHECK-WITH-EXT |
| 8 | + |
| 9 | +; CHECK-WITHOUT-EXT: Capability Shader |
| 10 | + |
| 11 | +; CHECK-WITH-EXT-NOT: Capability Shader |
| 12 | +; CHECK-WITH-EXT: Capability BitInstructions |
| 13 | +; CHECK-WITH-EXT-NOT: Capability Shader |
| 14 | +; CHECK-WITH-EXT: Extension "SPV_KHR_bit_instructions" |
| 15 | + |
| 16 | +; CHECK-COMMON: 4 BitReverse |
| 17 | + |
| 18 | +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" |
| 19 | +target triple = "spir-unknown-unknown" |
| 20 | + |
| 21 | +; Function Attrs: nounwind |
| 22 | +define spir_kernel void @TestSatPacked(i32 %0, i32 %1) #0 { |
| 23 | + %3 = call i32 @llvm.bitreverse.i32(i32 %0) |
| 24 | + ret void |
| 25 | +} |
| 26 | + |
| 27 | +declare i32 @llvm.bitreverse.i32(i32) #1 |
| 28 | + |
| 29 | +attributes #0 = { nounwind } |
| 30 | +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } |
| 31 | + |
| 32 | +!spirv.MemoryModel = !{!0} |
| 33 | +!spirv.Source = !{!1} |
| 34 | +!opencl.spir.version = !{!2} |
| 35 | +!opencl.ocl.version = !{!2} |
| 36 | +!opencl.used.extensions = !{!3} |
| 37 | +!opencl.used.optional.core.features = !{!3} |
| 38 | + |
| 39 | +!0 = !{i32 2, i32 2} |
| 40 | +!1 = !{i32 3, i32 102000} |
| 41 | +!2 = !{i32 1, i32 2} |
| 42 | +!3 = !{} |
0 commit comments