apint-cast.ll 1.3 KB

123456789101112131415161718192021222324252627282930
  1. ; Tests to make sure elimination of casts is working correctly
  2. ; RUN: opt < %s -instcombine -S | FileCheck %s
  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. define i17 @test1(i17 %a) {
  5. %tmp = zext i17 %a to i37 ; <i37> [#uses=2]
  6. %tmp21 = lshr i37 %tmp, 8 ; <i37> [#uses=1]
  7. ; CHECK: %tmp21 = lshr i17 %a, 8
  8. %tmp5 = shl i37 %tmp, 8 ; <i37> [#uses=1]
  9. ; CHECK: %tmp5 = shl i17 %a, 8
  10. %tmp.upgrd.32 = or i37 %tmp21, %tmp5 ; <i37> [#uses=1]
  11. ; CHECK: %tmp.upgrd.32 = or i17 %tmp21, %tmp5
  12. %tmp.upgrd.3 = trunc i37 %tmp.upgrd.32 to i17 ; <i17> [#uses=1]
  13. ret i17 %tmp.upgrd.3
  14. ; CHECK: ret i17 %tmp.upgrd.32
  15. }
  16. define i167 @test2(i167 %a) {
  17. %tmp = zext i167 %a to i577 ; <i577> [#uses=2]
  18. %tmp21 = lshr i577 %tmp, 9 ; <i577> [#uses=1]
  19. ; CHECK: %tmp21 = lshr i167 %a, 9
  20. %tmp5 = shl i577 %tmp, 8 ; <i577> [#uses=1]
  21. ; CHECK: %tmp5 = shl i167 %a, 8
  22. %tmp.upgrd.32 = or i577 %tmp21, %tmp5 ; <i577> [#uses=1]
  23. ; CHECK: %tmp.upgrd.32 = or i167 %tmp21, %tmp5
  24. %tmp.upgrd.3 = trunc i577 %tmp.upgrd.32 to i167 ; <i167> [#uses=1]
  25. ret i167 %tmp.upgrd.3
  26. ; CHECK: ret i167 %tmp.upgrd.32
  27. }