brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · ebab9f0 Raw
136 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s --data-layout="e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -S -disable-output -disable-verify "-passes=print<scalar-evolution>" 2>&1 | FileCheck --check-prefixes=ALL,X64 %s3; RUN: opt < %s --data-layout="e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" -S -disable-output -disable-verify "-passes=print<scalar-evolution>" 2>&1 | FileCheck --check-prefixes=ALL,X32 %s4 5declare void @useptr(ptr)6 7define void @ptrtoaddr(ptr %in, ptr %out0, ptr %out1, ptr %out2, ptr %out3) {8; X64-LABEL: 'ptrtoaddr'9; X64-NEXT:  Classifying expressions for: @ptrtoaddr10; X64-NEXT:    %p0 = ptrtoaddr ptr %in to i6411; X64-NEXT:    --> %p0 U: full-set S: full-set12; X64-NEXT:    %p1 = ptrtoaddr ptr %in to i3213; X64-NEXT:    --> %p1 U: full-set S: full-set14; X64-NEXT:    %p2 = ptrtoaddr ptr %in to i1615; X64-NEXT:    --> %p2 U: full-set S: full-set16; X64-NEXT:    %p3 = ptrtoaddr ptr %in to i12817; X64-NEXT:    --> %p3 U: full-set S: full-set18; X64-NEXT:  Determining loop execution counts for: @ptrtoaddr19;20; X32-LABEL: 'ptrtoaddr'21; X32-NEXT:  Classifying expressions for: @ptrtoaddr22; X32-NEXT:    %p0 = ptrtoaddr ptr %in to i6423; X32-NEXT:    --> %p0 U: full-set S: full-set24; X32-NEXT:    %p1 = ptrtoaddr ptr %in to i3225; X32-NEXT:    --> %p1 U: full-set S: full-set26; X32-NEXT:    %p2 = ptrtoaddr ptr %in to i1627; X32-NEXT:    --> %p2 U: full-set S: full-set28; X32-NEXT:    %p3 = ptrtoaddr ptr %in to i12829; X32-NEXT:    --> %p3 U: full-set S: full-set30; X32-NEXT:  Determining loop execution counts for: @ptrtoaddr31;32  %p0 = ptrtoaddr ptr %in to i6433  %p1 = ptrtoaddr ptr %in to i3234  %p2 = ptrtoaddr ptr %in to i1635  %p3 = ptrtoaddr ptr %in to i12836  store i64  %p0, ptr  %out037  store i32  %p1, ptr  %out138  store i16  %p2, ptr  %out239  store i128 %p3, ptr %out340  ret void41}42 43define void @ptrtoaddr_as1(ptr addrspace(1) %in, ptr %out0, ptr %out1, ptr %out2, ptr %out3) {44; X64-LABEL: 'ptrtoaddr_as1'45; X64-NEXT:  Classifying expressions for: @ptrtoaddr_as146; X64-NEXT:    %p0 = ptrtoaddr ptr addrspace(1) %in to i6447; X64-NEXT:    --> %p0 U: full-set S: full-set48; X64-NEXT:    %p1 = ptrtoaddr ptr addrspace(1) %in to i3249; X64-NEXT:    --> %p1 U: full-set S: full-set50; X64-NEXT:    %p2 = ptrtoaddr ptr addrspace(1) %in to i1651; X64-NEXT:    --> %p2 U: full-set S: full-set52; X64-NEXT:    %p3 = ptrtoaddr ptr addrspace(1) %in to i12853; X64-NEXT:    --> %p3 U: full-set S: full-set54; X64-NEXT:  Determining loop execution counts for: @ptrtoaddr_as155;56; X32-LABEL: 'ptrtoaddr_as1'57; X32-NEXT:  Classifying expressions for: @ptrtoaddr_as158; X32-NEXT:    %p0 = ptrtoaddr ptr addrspace(1) %in to i6459; X32-NEXT:    --> %p0 U: full-set S: full-set60; X32-NEXT:    %p1 = ptrtoaddr ptr addrspace(1) %in to i3261; X32-NEXT:    --> %p1 U: full-set S: full-set62; X32-NEXT:    %p2 = ptrtoaddr ptr addrspace(1) %in to i1663; X32-NEXT:    --> %p2 U: full-set S: full-set64; X32-NEXT:    %p3 = ptrtoaddr ptr addrspace(1) %in to i12865; X32-NEXT:    --> %p3 U: full-set S: full-set66; X32-NEXT:  Determining loop execution counts for: @ptrtoaddr_as167;68  %p0 = ptrtoaddr ptr addrspace(1) %in to i6469  %p1 = ptrtoaddr ptr addrspace(1) %in to i3270  %p2 = ptrtoaddr ptr addrspace(1) %in to i1671  %p3 = ptrtoaddr ptr addrspace(1) %in to i12872  store i64  %p0, ptr  %out073  store i32  %p1, ptr  %out174  store i16  %p2, ptr  %out275  store i128 %p3, ptr %out376  ret void77}78 79define void @ptrtoaddr_of_bitcast(ptr %in, ptr %out0) {80; X64-LABEL: 'ptrtoaddr_of_bitcast'81; X64-NEXT:  Classifying expressions for: @ptrtoaddr_of_bitcast82; X64-NEXT:    %in_casted = bitcast ptr %in to ptr83; X64-NEXT:    --> %in U: full-set S: full-set84; X64-NEXT:    %p0 = ptrtoaddr ptr %in_casted to i6485; X64-NEXT:    --> %p0 U: full-set S: full-set86; X64-NEXT:  Determining loop execution counts for: @ptrtoaddr_of_bitcast87;88; X32-LABEL: 'ptrtoaddr_of_bitcast'89; X32-NEXT:  Classifying expressions for: @ptrtoaddr_of_bitcast90; X32-NEXT:    %in_casted = bitcast ptr %in to ptr91; X32-NEXT:    --> %in U: full-set S: full-set92; X32-NEXT:    %p0 = ptrtoaddr ptr %in_casted to i6493; X32-NEXT:    --> %p0 U: full-set S: full-set94; X32-NEXT:  Determining loop execution counts for: @ptrtoaddr_of_bitcast95;96  %in_casted = bitcast ptr %in to ptr97  %p0 = ptrtoaddr ptr %in_casted to i6498  store i64 %p0, ptr %out099  ret void100}101 102define void @ptrtoaddr_of_nullptr(ptr %out0) {103; ALL-LABEL: 'ptrtoaddr_of_nullptr'104; ALL-NEXT:  Classifying expressions for: @ptrtoaddr_of_nullptr105; ALL-NEXT:    %p0 = ptrtoaddr ptr null to i64106; ALL-NEXT:    --> %p0 U: full-set S: full-set107; ALL-NEXT:  Determining loop execution counts for: @ptrtoaddr_of_nullptr108;109  %p0 = ptrtoaddr ptr null to i64110  store i64 %p0, ptr %out0111  ret void112}113 114define void @ptrtoaddr_of_gep(ptr %in, ptr %out0) {115; X64-LABEL: 'ptrtoaddr_of_gep'116; X64-NEXT:  Classifying expressions for: @ptrtoaddr_of_gep117; X64-NEXT:    %in_adj = getelementptr inbounds i8, ptr %in, i64 42118; X64-NEXT:    --> (42 + %in) U: full-set S: full-set119; X64-NEXT:    %p0 = ptrtoaddr ptr %in_adj to i64120; X64-NEXT:    --> %p0 U: full-set S: full-set121; X64-NEXT:  Determining loop execution counts for: @ptrtoaddr_of_gep122;123; X32-LABEL: 'ptrtoaddr_of_gep'124; X32-NEXT:  Classifying expressions for: @ptrtoaddr_of_gep125; X32-NEXT:    %in_adj = getelementptr inbounds i8, ptr %in, i64 42126; X32-NEXT:    --> (42 + %in) U: full-set S: full-set127; X32-NEXT:    %p0 = ptrtoaddr ptr %in_adj to i64128; X32-NEXT:    --> %p0 U: full-set S: full-set129; X32-NEXT:  Determining loop execution counts for: @ptrtoaddr_of_gep130;131  %in_adj = getelementptr inbounds i8, ptr %in, i64 42132  %p0 = ptrtoaddr ptr %in_adj to i64133  store i64  %p0, ptr  %out0134  ret void135}136