brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · a1611e2 Raw
135 lines · plain
1; RUN: opt -mtriple=x86_64-apple-macosx10.7 -aa-pipeline=basic-aa -passes=inferattrs,aa-eval -print-all-alias-modref-info -disable-output 2>&1 %s | FileCheck %s2 3declare void @memset_pattern4(ptr, ptr, i64)4declare void @memset_pattern8(ptr, ptr, i64)5declare void @memset_pattern16(ptr, ptr, i64)6 7define void @test_memset_pattern4_const_size(ptr noalias %a, ptr noalias %pattern) {8; CHECK-LABEL: Function: test_memset_pattern4_const_size9; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)10; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)11; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)12; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)13; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern.gep.3	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)14; CHECK-NEXT:  NoModRef:  Ptr: i8* %pattern.gep.4	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)15;16entry:17  load i8, ptr %a18  load i8, ptr %pattern19  call void @memset_pattern4(ptr %a, ptr %pattern, i64 17)20  %a.gep.1 = getelementptr i8, ptr %a, i32 121  store i8 0, ptr %a.gep.122  %a.gep.17 = getelementptr i8, ptr %a, i32 1723  store i8 1, ptr %a.gep.1724 25  %pattern.gep.3 = getelementptr i8, ptr %pattern, i32 326  store i8 1, ptr %pattern.gep.327  %pattern.gep.4 = getelementptr i8, ptr %pattern, i32 428  store i8 1, ptr %pattern.gep.429  ret void30}31 32define void @test_memset_pattern4_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {33; CHECK-LABEL: Function: test_memset_pattern4_variable_size34; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)35; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)36; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)37; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)38;39entry:40  load i8, ptr %a41  load i8, ptr %pattern42  call void @memset_pattern4(ptr %a, ptr %pattern, i64 %n)43  %a.gep.1 = getelementptr i8, ptr %a, i32 144  store i8 0, ptr %a.gep.145  %a.gep.17 = getelementptr i8, ptr %a, i32 1746  store i8 1, ptr %a.gep.1747  ret void48}49 50define void @test_memset_pattern8_const_size(ptr noalias %a, ptr noalias %pattern) {51; CHECK-LABEL: Function: test_memset_pattern8_const_size52; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)53; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)54; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)55; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)56; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern.gep.7	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)57; CHECK-NEXT:  NoModRef:  Ptr: i8* %pattern.gep.8	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)58;59entry:60  load i8, ptr %a61  load i8, ptr %pattern62  call void @memset_pattern8(ptr %a, ptr %pattern, i64 17)63  %a.gep.1 = getelementptr i8, ptr %a, i32 164  store i8 0, ptr %a.gep.165  %a.gep.17 = getelementptr i8, ptr %a, i32 1766  store i8 1, ptr %a.gep.1767 68  %pattern.gep.7 = getelementptr i8, ptr %pattern, i32 769  store i8 1, ptr %pattern.gep.770  %pattern.gep.8 = getelementptr i8, ptr %pattern, i32 871  store i8 1, ptr %pattern.gep.872  ret void73}74 75define void @test_memset_pattern8_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {76; CHECK-LABEL: Function: test_memset_pattern8_variable_size77; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)78; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)79; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)80; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)81;82entry:83  load i8, ptr %a84  load i8, ptr %pattern85  call void @memset_pattern8(ptr %a, ptr %pattern, i64 %n)86  %a.gep.1 = getelementptr i8, ptr %a, i32 187  store i8 0, ptr %a.gep.188  %a.gep.17 = getelementptr i8, ptr %a, i32 1789  store i8 1, ptr %a.gep.1790  ret void91}92 93define void @test_memset_pattern16_const_size(ptr noalias %a, ptr noalias %pattern) {94; CHECK-LABEL: Function: test_memset_pattern16_const_size95; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)96; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)97; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)98; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)99; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern.gep.15	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)100; CHECK-NEXT:  NoModRef:  Ptr: i8* %pattern.gep.16	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)101;102entry:103  load i8, ptr %a104  load i8, ptr %pattern105  call void @memset_pattern16(ptr %a, ptr %pattern, i64 17)106  %a.gep.1 = getelementptr i8, ptr %a, i32 1107  store i8 0, ptr %a.gep.1108  %a.gep.17 = getelementptr i8, ptr %a, i32 17109  store i8 1, ptr %a.gep.17110 111  %pattern.gep.15 = getelementptr i8, ptr %pattern, i32 15112  store i8 1, ptr %pattern.gep.15113  %pattern.gep.16 = getelementptr i8, ptr %pattern, i32 16114  store i8 1, ptr %pattern.gep.16115  ret void116}117 118define void @test_memset_pattern16_variable_size(ptr noalias %a, ptr noalias %pattern, i64 %n) {119; CHECK-LABEL: Function: test_memset_pattern16_variable_size120; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)121; CHECK-NEXT:  Just Ref:  Ptr: i8* %pattern	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)122; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)123; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.17	<->  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)124;125entry:126  load i8, ptr %a127  load i8, ptr %pattern128  call void @memset_pattern16(ptr %a, ptr %pattern, i64 %n)129  %a.gep.1 = getelementptr i8, ptr %a, i32 1130  store i8 0, ptr %a.gep.1131  %a.gep.17 = getelementptr i8, ptr %a, i32 17132  store i8 1, ptr %a.gep.17133  ret void134}135