Mercurial > hg > CbC > CbC_llvm
comparison test/Transforms/InstCombine/2008-01-21-MulTrunc.ll @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
1 ; RUN: opt < %s -instcombine -S | FileCheck %s | |
2 | |
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" | |
4 | |
5 define i16 @test1(i16 %a) { | |
6 %tmp = zext i16 %a to i32 ; <i32> [#uses=2] | |
7 %tmp21 = lshr i32 %tmp, 8 ; <i32> [#uses=1] | |
8 ; CHECK: %tmp21 = lshr i16 %a, 8 | |
9 %tmp5 = mul i32 %tmp, 5 ; <i32> [#uses=1] | |
10 ; CHECK: %tmp5 = mul i16 %a, 5 | |
11 %tmp.upgrd.32 = or i32 %tmp21, %tmp5 ; <i32> [#uses=1] | |
12 ; CHECK: %tmp.upgrd.32 = or i16 %tmp21, %tmp5 | |
13 %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16 ; <i16> [#uses=1] | |
14 ret i16 %tmp.upgrd.3 | |
15 ; CHECK: ret i16 %tmp.upgrd.32 | |
16 } | |
17 |