brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 728b118 Raw
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