// RUN: cir-opt %s -verify-diagnostics -split-input-file !void = !cir.void module { cir.func @assume_bundle_args_without_kind(%arg0 : !cir.ptr) { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{unexpected bundle operands for kind 'none'}} "cir.assume"(%0, %arg0) : (!cir.bool, !cir.ptr) -> () cir.return } } // ----- !void = !cir.void module { cir.func @assume_deref_wrong_arity(%arg0 : !cir.ptr) { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{dereferenceable bundle expects 2 operands}} cir.assume %0 dereferenceable(%arg0 : !cir.ptr) : !cir.bool cir.return } } // ----- !void = !cir.void module { cir.func @assume_unknown_bundle(%arg0 : !cir.ptr) { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{unknown assume bundle kind 'bogus'}} cir.assume %0 bogus(%arg0 : !cir.ptr) : !cir.bool cir.return } } // ----- !void = !cir.void module { cir.func @assume_align_no_operands() { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{expected bundle operands for kind 'align'}} cir.assume %0 align : !cir.bool cir.return } } // ----- !void = !cir.void module { cir.func @assume_align_wrong_arity(%ptr : !cir.ptr) { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{align bundle expects 2 or 3 operands}} cir.assume %0 align(%ptr : !cir.ptr) : !cir.bool cir.return } } // ----- !void = !cir.void module { cir.func @assume_separate_storage_wrong_arity(%a : !cir.ptr) { %0 = cir.const #cir.bool : !cir.bool // expected-error@+1 {{separate_storage bundle expects 2 operands}} cir.assume %0 separate_storage(%a : !cir.ptr) : !cir.bool cir.return } }