85 lines · plain
1; RUN: opt < %s -S | FileCheck %s2 3define void @store_unsignedptr(ptr %ptr) {4entry:5 store ptr null, ptr %ptr, align 8, !tbaa !06 ret void7}8 9define void @store_char(ptr %ptr) {10entry:11 store i8 0, ptr %ptr, align 1, !tbaa !512 ret void13}14 15define float @ptr_to_float(ptr %ptr) {16entry:17 store float 0.000000e+00, ptr %ptr, align 4, !tbaa !618 call void @opaque(ptr %ptr)19 %val = load float, ptr %ptr, align 4, !tbaa !620 ret float %val21}22 23define i64 @ptr_to_longlong(ptr %ptr) {24entry:25 %val = load i64, ptr %ptr, align 8, !tbaa !826 store i64 0, ptr %ptr, align 8, !tbaa !827 ret i64 %val28}29 30; struct STRUCT1 {31; int x;32; int y;33; };34 35define void @store_struct1ptr(ptr %ptr) {36entry:37 ; *(struct STRUCT1 **)ptr = 0;38 store ptr null, ptr %ptr, align 8, !tbaa !1039 ret void40}41 42; struct STRUCT2 {43; struct STRUCT1 *s;44; };45 46define void @store_struct2(ptr %ptr) {47entry:48 ; ptr->s = 0;49 store ptr null, ptr %ptr, align 8, !tbaa !1250 ret void51}52 53define double @access_matrix(ptr %ptr) {54entry:55 %alloca.ptr = alloca ptr, align 856 store ptr %ptr, ptr %alloca.ptr, align 8, !tbaa !1457 %ptr.idx = load ptr, ptr %alloca.ptr, align 8, !tbaa !1458 %add.ptr = getelementptr inbounds ptr, ptr %ptr.idx, i64 459 %ptr.idx.1 = load ptr, ptr %add.ptr, align 8, !tbaa !1660 %add.ptr1 = getelementptr inbounds [6 x double], ptr %ptr.idx.1, i64 661 %ptr.idx.2 = load <6 x double>, ptr %add.ptr1, align 8, !tbaa !562 %matrixext = extractelement <6 x double> %ptr.idx.2, i64 563 ret double %matrixext64}65 66declare void @opaque(ptr)67 68!0 = !{!1, !1, i64 0}69!1 = !{!"p1 int", !2, i64 0}70!2 = !{!"any pointer", !3, i64 0}71!3 = !{!"omnipotent char", !4, i64 0}72!4 = !{!"Simple C/C++ TBAA"}73!5 = !{!3, !3, i64 0}74!6 = !{!7, !7, i64 0}75!7 = !{!"float", !3, i64 0}76!8 = !{!9, !9, i64 0}77!9 = !{!"long long", !3, i64 0}78!10 = !{!11, !11, i64 0}79!11 = !{!"p1 _ZTS7STRUCT1", !2, i64 0}80!12 = !{!13, !11, i64 0}81!13 = !{!"STRUCT2", !11, i64 0}82!14 = !{!15, !15, i64 0}83!15 = !{!"any p2 pointer", !2, i64 0}84!16 = !{!2, !2, i64 0}85