You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.205
Former-commit-id: 7f59f7e792705db773f1caecdaa823092f4e2927
This commit is contained in:
parent
5cd5df71cc
commit
8e12397d70
31
external/llvm/test/Transforms/LoopRotate/convergent.ll
vendored
Normal file
31
external/llvm/test/Transforms/LoopRotate/convergent.ll
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
; RUN: opt -S -loop-rotate < %s | FileCheck %s
|
||||
|
||||
@e = global i32 10
|
||||
|
||||
declare void @f1(i32) convergent
|
||||
declare void @f2(i32)
|
||||
|
||||
; The call to f1 in the loop header shouldn't be duplicated (meaning, loop
|
||||
; rotation shouldn't occur), because f1 is convergent.
|
||||
|
||||
; CHECK: call void @f1
|
||||
; CHECK-NOT: call void @f1
|
||||
|
||||
define void @test(i32 %x) {
|
||||
entry:
|
||||
br label %loop
|
||||
|
||||
loop:
|
||||
%n.phi = phi i32 [ %n, %loop.fin ], [ 0, %entry ]
|
||||
call void @f1(i32 %n.phi)
|
||||
%cond = icmp eq i32 %n.phi, %x
|
||||
br i1 %cond, label %exit, label %loop.fin
|
||||
|
||||
loop.fin:
|
||||
%n = add i32 %n.phi, 1
|
||||
call void @f2(i32 %n)
|
||||
br label %loop
|
||||
|
||||
exit:
|
||||
ret void
|
||||
}
|
Reference in New Issue
Block a user