otherops.ll 887 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. ; Reassociation should apply to Add, Mul, And, Or, & Xor
  2. ;
  3. ; RUN: opt < %s -reassociate -constprop -instcombine -die -S | FileCheck %s
  4. define i32 @test_mul(i32 %arg) {
  5. ; CHECK-LABEL: test_mul
  6. ; CHECK-NEXT: %tmp2 = mul i32 %arg, 144
  7. ; CHECK-NEXT: ret i32 %tmp2
  8. %tmp1 = mul i32 12, %arg
  9. %tmp2 = mul i32 %tmp1, 12
  10. ret i32 %tmp2
  11. }
  12. define i32 @test_and(i32 %arg) {
  13. ; CHECK-LABEL: test_and
  14. ; CHECK-NEXT: %tmp2 = and i32 %arg, 14
  15. ; CHECK-NEXT: ret i32 %tmp2
  16. %tmp1 = and i32 14, %arg
  17. %tmp2 = and i32 %tmp1, 14
  18. ret i32 %tmp2
  19. }
  20. define i32 @test_or(i32 %arg) {
  21. ; CHECK-LABEL: test_or
  22. ; CHECK-NEXT: %tmp2 = or i32 %arg, 14
  23. ; CHECK-NEXT: ret i32 %tmp2
  24. %tmp1 = or i32 14, %arg
  25. %tmp2 = or i32 %tmp1, 14
  26. ret i32 %tmp2
  27. }
  28. define i32 @test_xor(i32 %arg) {
  29. ; CHECK-LABEL: test_xor
  30. ; CHECK-NEXT: ret i32 %arg
  31. %tmp1 = xor i32 12, %arg
  32. %tmp2 = xor i32 %tmp1, 12
  33. ret i32 %tmp2
  34. }