2008-12-16-DCECond.ll 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ; RUN: opt < %s -simplifycfg -S | not grep icmp
  2. ; ModuleID = '/tmp/x.bc'
  3. target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
  4. target triple = "i686-pc-linux-gnu"
  5. define i32 @x(i32 %x) {
  6. entry:
  7. %cmp = icmp eq i32 %x, 8 ; <i1> [#uses=1]
  8. br i1 %cmp, label %ifthen, label %ifend
  9. ifthen: ; preds = %entry
  10. %call = call i32 (...) @foo() ; <i32> [#uses=0]
  11. br label %ifend
  12. ifend: ; preds = %ifthen, %entry
  13. %cmp2 = icmp ne i32 %x, 8 ; <i1> [#uses=1]
  14. br i1 %cmp2, label %ifthen3, label %ifend5
  15. ifthen3: ; preds = %ifend
  16. %call4 = call i32 (...) @foo() ; <i32> [#uses=0]
  17. br label %ifend5
  18. ifend5: ; preds = %ifthen3, %ifend
  19. %cmp7 = icmp eq i32 %x, 9 ; <i1> [#uses=1]
  20. br i1 %cmp7, label %ifthen8, label %ifend10
  21. ifthen8: ; preds = %ifend5
  22. %call9 = call i32 (...) @bar() ; <i32> [#uses=0]
  23. br label %ifend10
  24. ifend10: ; preds = %ifthen8, %ifend5
  25. %cmp12 = icmp ne i32 %x, 9 ; <i1> [#uses=1]
  26. br i1 %cmp12, label %ifthen13, label %ifend15
  27. ifthen13: ; preds = %ifend10
  28. %call14 = call i32 (...) @bar() ; <i32> [#uses=0]
  29. br label %ifend15
  30. ifend15: ; preds = %ifthen13, %ifend10
  31. ret i32 0
  32. }
  33. declare i32 @foo(...)
  34. declare i32 @bar(...)