39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: not opt -passes=verify < %s 2>&1 | FileCheck %s3 4declare void @llvm.assume(i1)5 6define void @func(ptr %P, i32 %P1, ptr %P2, ptr %P3, i1 %cond) {7; CHECK: tags must be valid attribute names8; CHECK: "adazdazd"9 call void @llvm.assume(i1 true) ["adazdazd"()]10; CHECK-NOT: call{{.+}}deref11 call void @llvm.assume(i1 true) ["dereferenceable"(ptr %P, i32 %P1)]12; CHECK: second argument should be an integer13 call void @llvm.assume(i1 true) ["dereferenceable"(ptr %P, float 1.5)]14; CHECK: dereferenceable assumptions should have 2 arguments15 call void @llvm.assume(i1 true) ["dereferenceable"(ptr %P, i32 8, i32 8)]16; CHECK: dereferenceable assumptions should have 2 arguments17 call void @llvm.assume(i1 true) ["dereferenceable"(ptr %P)]18; CHECK: this attribute has no argument19 call void @llvm.assume(i1 true) ["dereferenceable"(ptr %P, i32 4), "cold"(ptr %P)]20; CHECK: this attribute should have one argument21 call void @llvm.assume(i1 true) ["noalias"()]22 call void @llvm.assume(i1 true) ["align"(ptr %P, i32 %P1, i32 4)]23; CHECK: alignment assumptions should have 2 or 3 arguments24 call void @llvm.assume(i1 true) ["align"(ptr %P, i32 %P1, i32 4, i32 4)]25; CHECK: second argument should be an integer26 call void @llvm.assume(i1 true) ["align"(ptr %P, ptr %P2)]27; CHECK: third argument should be an integer if present28 call void @llvm.assume(i1 true) ["align"(ptr %P, i32 %P1, ptr %P2)]29; CHECK: separate_storage assumptions should have 2 arguments30 call void @llvm.assume(i1 true) ["separate_storage"(ptr %P)]31; CHECK: arguments to separate_storage assumptions should be pointers32 call void @llvm.assume(i1 true) ["separate_storage"(ptr %P, i32 123)]33; CHECK: dereferenceable assumptions should have 2 arguments34 call void @llvm.assume(i1 true) ["align"(ptr %P, i32 4), "dereferenceable"(ptr %P)]35; CHECK: assume with operand bundles must have i1 true condition36 call void @llvm.assume(i1 %cond) ["nonnull"(ptr %P)]37 ret void38}39