Mercurial > hg > CbC > CbC_llvm
view llvm/test/Transforms/LICM/2003-05-02-LoadHoist.ll @ 225:f7655407a6ba
remove unnecessary files
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 19 Jul 2021 03:48:36 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
line wrap: on
line source
; This testcase tests for a problem where LICM hoists loads out of a loop ; despite the fact that calls to unknown functions may modify what is being ; loaded from. Basically if the load gets hoisted, the subtract gets turned ; into a constant zero. ; ; RUN: opt < %s -licm -gvn -instcombine -S | grep load @X = global i32 7 ; <i32*> [#uses=2] declare void @foo() define i32 @test(i1 %c) { %A = load i32, i32* @X ; <i32> [#uses=1] br label %Loop Loop: ; preds = %Loop, %0 call void @foo( ) ;; Should not hoist this load! %B = load i32, i32* @X ; <i32> [#uses=1] br i1 %c, label %Loop, label %Out Out: ; preds = %Loop %C = sub i32 %A, %B ; <i32> [#uses=1] ret i32 %C }