; RUN: llc -O0 -mtriple=spirv64v1.3-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64v1.3-unknown-unknown %s -o - -filetype=obj | spirv-val %} ;; kernel void test(int global *in, int global *in2) { ;; if (!in) ;; return; ;; if (in == 1) ;; return; ;; if (in > in2) ;; return; ;; if (in < in2) ;; return; ;; } ; CHECK-SPIRV: OpSpecConstantOp %[[#]] ConvertPtrToU ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpINotEqual ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpIEqual ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpUGreaterThan ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpConvertPtrToU ; CHECK-SPIRV: OpULessThan define dso_local spir_kernel void @test(ptr addrspace(1) noundef %in, ptr addrspace(1) noundef %in2) { entry: %in.addr = alloca ptr addrspace(1), align 8 %in2.addr = alloca ptr addrspace(1), align 8 store ptr addrspace(1) %in, ptr %in.addr, align 8 store ptr addrspace(1) %in2, ptr %in2.addr, align 8 %0 = load ptr addrspace(1), ptr %in.addr, align 8 %tobool = icmp ne ptr addrspace(1) %0, null br i1 %tobool, label %if.end, label %if.then if.then: ; preds = %entry br label %if.end8 if.end: ; preds = %entry %1 = load ptr addrspace(1), ptr %in.addr, align 8 %cmp = icmp eq ptr addrspace(1) %1, inttoptr (i64 1 to ptr addrspace(1)) br i1 %cmp, label %if.then1, label %if.end2 if.then1: ; preds = %if.end br label %if.end8 if.end2: ; preds = %if.end %2 = load ptr addrspace(1), ptr %in.addr, align 8 %3 = load ptr addrspace(1), ptr %in2.addr, align 8 %cmp3 = icmp ugt ptr addrspace(1) %2, %3 br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %if.end2 br label %if.end8 if.end5: ; preds = %if.end2 %4 = load ptr addrspace(1), ptr %in.addr, align 8 %5 = load ptr addrspace(1), ptr %in2.addr, align 8 %cmp6 = icmp ult ptr addrspace(1) %4, %5 br i1 %cmp6, label %if.then7, label %if.end8 if.then7: ; preds = %if.end5 br label %if.end8 if.end8: ; preds = %if.then, %if.then1, %if.then4, %if.then7, %if.end5 ret void }