brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 887a0d0 Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S -passes="function(print<memoryssa>),cgscc(function-attrs),function(loop-mssa(licm))" < %s 2>/dev/null | FileCheck %s3 4@g = external global i165 6define i16 @fn() {7; CHECK-LABEL: define i16 @fn(8; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {9; CHECK-NEXT:    [[V:%.*]] = load i16, ptr @g, align 210; CHECK-NEXT:    ret i16 [[V]]11;12  %v = load i16, ptr @g13  ret i16 %v14}15 16declare void @fn2(i16)17 18define void @test() {19; CHECK-LABEL: define void @test() {20; CHECK-NEXT:  [[ENTRY:.*:]]21; CHECK-NEXT:    br label %[[LOOP:.*]]22; CHECK:       [[LOOP]]:23; CHECK-NEXT:    [[CALL:%.*]] = call i16 @fn(i32 0)24; CHECK-NEXT:    call void @fn2(i16 [[CALL]])25; CHECK-NEXT:    br i1 false, label %[[LOOP]], label %[[EXIT:.*]]26; CHECK:       [[EXIT]]:27; CHECK-NEXT:    ret void28;29entry:30  br label %loop31 32loop:33  %call = call i16 @fn(i32 0) ; intentional signature mismatch34  call void @fn2(i16 %call)35  br i1 false, label %loop, label %exit36 37exit:38  ret void39}40