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