brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 9d60596 Raw
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