brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · a8f3309 Raw
39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes=attributor %s -o - | FileCheck %s3 4@g = internal unnamed_addr addrspace(4) constant [3 x i8] c"12\00", align 165 6define void @foo(i32 %a, i32 %b, ptr %p.0, ptr %p.1) {7; CHECK-LABEL: define void @foo(8; CHECK-SAME: i32 [[A:%.*]], i32 [[B:%.*]], ptr nofree nonnull writeonly captures(none) dereferenceable(1) [[P_0:%.*]], ptr nofree nonnull writeonly align 4 captures(none) dereferenceable(8) [[P_1:%.*]]) #[[ATTR0:[0-9]+]] {9; CHECK-NEXT:  [[ENTRY:.*:]]10; CHECK-NEXT:    [[CMP:%.*]] = icmp ne i32 [[A]], [[B]]11; CHECK-NEXT:    br i1 [[CMP]], label %[[L1:.*]], label %[[L2:.*]]12; CHECK:       [[L1]]:13; CHECK-NEXT:    br label %[[L3:.*]]14; CHECK:       [[L2]]:15; CHECK-NEXT:    br label %[[L3]]16; CHECK:       [[L3]]:17; CHECK-NEXT:    [[PHI:%.*]] = phi ptr addrspace(4) [ @g, %[[L1]] ], [ getelementptr inbounds nuw (i8, ptr addrspace(4) @g, i64 1), %[[L2]] ]18; CHECK-NEXT:    [[LOAD_SMALL:%.*]] = load i8, ptr addrspace(4) [[PHI]], align 419; CHECK-NEXT:    store i8 [[LOAD_SMALL]], ptr [[P_0]], align 120; CHECK-NEXT:    [[LOAD_LARGE:%.*]] = load i64, ptr addrspace(4) [[PHI]], align 421; CHECK-NEXT:    store i64 [[LOAD_LARGE]], ptr [[P_1]], align 422; CHECK-NEXT:    ret void23;24entry:25  %cmp = icmp ne i32 %a, %b26  br i1 %cmp, label %l1, label %l227l1:28  br label %l329l2:30  br label %l331l3:32  %phi = phi ptr addrspace(4) [ @g, %l1 ], [ getelementptr inbounds nuw (i8, ptr addrspace(4) @g, i64 1), %l2 ]33  %load.small = load i8, ptr addrspace(4) %phi34  store i8 %load.small, ptr %p.035  %load.large = load i64, ptr addrspace(4) %phi36  store i64 %load.large, ptr %p.137  ret void38}39