brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · e60e7b1 Raw
136 lines · plain
1; RUN: opt -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 %s | FileCheck %s2 3declare void @llvm.memset.element.unordered.atomic.p0.i32(ptr, i8, i64, i32)4 5define void @test_memset_element_unordered_atomic_const_size(ptr noalias %a) {6; CHECK-LABEL: Function: test_memset_element_unordered_atomic_const_size7; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 4, i32 1)8; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 4, i32 1)9; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.5	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 4, i32 1)10;11entry:12  load i8, ptr %a13  call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %a, i8 0, i64 4, i32 1)14  %a.gep.1 = getelementptr i8, ptr %a, i32 115  store i8 0, ptr %a.gep.116  %a.gep.5 = getelementptr i8, ptr %a, i32 517  store i8 1, ptr %a.gep.518  ret void19}20 21define void @test_memset_element_unordered_atomic_variable_size(ptr noalias %a, i64 %n) {22; CHECK-LABEL: Function: test_memset_element_unordered_atomic_variable_size23; CHECK:       Just Mod:  Ptr: i8* %a	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 %n, i32 1)24; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.1	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 %n, i32 1)25; CHECK-NEXT:  Just Mod:  Ptr: i8* %a.gep.5	<->  call void @llvm.memset.element.unordered.atomic.p0.i64(ptr align 1 %a, i8 0, i64 %n, i32 1)26;27entry:28  load i8, ptr %a29  call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %a, i8 0, i64 %n, i32 1)30  %a.gep.1 = getelementptr i8, ptr %a, i32 131  store i8 0, ptr %a.gep.132  %a.gep.5 = getelementptr i8, ptr %a, i32 533  store i8 1, ptr %a.gep.534  ret void35}36 37declare void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i32)38 39define void @test_memcpy_element_unordered_atomic_const_size(ptr noalias %a, ptr noalias %b) {40; CHECK-LABEL: Function: test_memcpy_element_unordered_atomic_const_size41; CHECK:       Just Ref:  Ptr: i8* %a	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)42; CHECK-NEXT:  Just Mod:  Ptr: i8* %b	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)43; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.1	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)44; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.5	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)45; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.1	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)46; CHECK-NEXT:  NoModRef:  Ptr: i8* %b.gep.5	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)47;48entry:49  load i8, ptr %a50  load i8, ptr %b51  %a.gep.1 = getelementptr i8, ptr %a, i32 152  store i8 0, ptr %a.gep.153  %a.gep.5 = getelementptr i8, ptr %a, i32 554  store i8 1, ptr %a.gep.555  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)56  %b.gep.1 = getelementptr i8, ptr %b, i32 157  store i8 0, ptr %b.gep.158  %b.gep.5 = getelementptr i8, ptr %b, i32 559  store i8 1, ptr %b.gep.560  ret void61}62 63define void @test_memcpy_element_unordered_atomic_variable_size(ptr noalias %a, ptr noalias %b, i64 %n) {64; CHECK-LABEL: Function: test_memcpy_element_unordered_atomic_variable_size65; CHECK:       Just Ref:  Ptr: i8* %a	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)66; CHECK-NEXT:  Just Mod:  Ptr: i8* %b	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)67; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.1	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)68; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.5	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)69; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.1	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)70; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.5	<->  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)71;72entry:73  load i8, ptr %a74  load i8, ptr %b75  %a.gep.1 = getelementptr i8, ptr %a, i32 176  store i8 0, ptr %a.gep.177  %a.gep.5 = getelementptr i8, ptr %a, i32 578  store i8 1, ptr %a.gep.579  call void @llvm.memcpy.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)80  %b.gep.1 = getelementptr i8, ptr %b, i32 181  store i8 0, ptr %b.gep.182  %b.gep.5 = getelementptr i8, ptr %b, i32 583  store i8 1, ptr %b.gep.584  ret void85}86 87declare void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i32)88 89define void @test_memmove_element_unordered_atomic_const_size(ptr noalias %a, ptr noalias %b) {90; CHECK-LABEL: Function: test_memmove_element_unordered_atomic_const_size91; CHECK:       Just Ref:  Ptr: i8* %a	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)92; CHECK-NEXT:  Just Mod:  Ptr: i8* %b	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)93; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.1	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)94; CHECK-NEXT:  NoModRef:  Ptr: i8* %a.gep.5	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)95; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.1	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)96; CHECK-NEXT:  NoModRef:  Ptr: i8* %b.gep.5	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)97;98entry:99  load i8, ptr %a100  load i8, ptr %b101  %a.gep.1 = getelementptr i8, ptr %a, i32 1102  store i8 0, ptr %a.gep.1103  %a.gep.5 = getelementptr i8, ptr %a, i32 5104  store i8 1, ptr %a.gep.5105  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 4, i32 1)106  %b.gep.1 = getelementptr i8, ptr %b, i32 1107  store i8 0, ptr %b.gep.1108  %b.gep.5 = getelementptr i8, ptr %b, i32 5109  store i8 1, ptr %b.gep.5110  ret void111}112 113define void @test_memmove_element_unordered_atomic_variable_size(ptr noalias %a, ptr noalias %b, i64 %n) {114; CHECK-LABEL: Function: test_memmove_element_unordered_atomic_variable_size115; CHECK:       Just Ref:  Ptr: i8* %a	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)116; CHECK-NEXT:  Just Mod:  Ptr: i8* %b	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)117; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.1	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)118; CHECK-NEXT:  Just Ref:  Ptr: i8* %a.gep.5	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)119; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.1	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)120; CHECK-NEXT:  Just Mod:  Ptr: i8* %b.gep.5	<->  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)121;122entry:123  load i8, ptr %a124  load i8, ptr %b125  %a.gep.1 = getelementptr i8, ptr %a, i32 1126  store i8 0, ptr %a.gep.1127  %a.gep.5 = getelementptr i8, ptr %a, i32 5128  store i8 1, ptr %a.gep.5129  call void @llvm.memmove.element.unordered.atomic.p0.p0.i64(ptr align 1 %b, ptr align 1 %a, i64 %n, i32 1)130  %b.gep.1 = getelementptr i8, ptr %b, i32 1131  store i8 0, ptr %b.gep.1132  %b.gep.5 = getelementptr i8, ptr %b, i32 5133  store i8 1, ptr %b.gep.5134  ret void135}136