xref: /llvm-project/llvm/test/CodeGen/SPIRV/assume.ll (revision d06ba376833553f38b5cbc606e479ed7936e5f5b)
1; RUN: llc -mtriple=spirv32-unknown-unknown --spirv-ext=+SPV_KHR_expect_assume < %s | FileCheck --check-prefixes=EXT,CHECK %s
2; RUN: llc -mtriple=spirv64-unknown-unknown --spirv-ext=+SPV_KHR_expect_assume < %s | FileCheck --check-prefixes=EXT,CHECK %s
3; RUN: llc -mtriple=spirv32-unknown-unknown < %s | FileCheck --check-prefixes=NOEXT,CHECK %s
4; RUN: llc -mtriple=spirv64-unknown-unknown < %s | FileCheck --check-prefixes=NOEXT,CHECK %s
5
6; EXT:        OpCapability ExpectAssumeKHR
7; EXT-NEXT:   OpExtension "SPV_KHR_expect_assume"
8; NOEXT-NOT:  OpCapability ExpectAssumeKHR
9; NOEXT-NOT:  OpExtension "SPV_KHR_expect_assume"
10
11declare void @llvm.assume(i1)
12
13; CHECK-DAG:  %8 = OpIEqual %3 %5 %6
14; EXT:        OpAssumeTrueKHR %8
15; NOEXT-NOT:  OpAssumeTrueKHR %8
16define i1 @assumeeq(i32 %x, i32 %y) {
17    %cmp = icmp eq i32 %x, %y
18    call void @llvm.assume(i1 %cmp)
19    ret i1 %cmp
20}
21