OLD | NEW |
(Empty) | |
| 1 //===- subzero/crosstest/test_strengthreduce.cpp - Strength reduction -----===// |
| 2 // |
| 3 // The Subzero Code Generator |
| 4 // |
| 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. |
| 7 // |
| 8 //===----------------------------------------------------------------------===// |
| 9 // |
| 10 // Implementation for crosstesting strength reduction. |
| 11 // |
| 12 //===----------------------------------------------------------------------===// |
| 13 |
| 14 #include "test_strengthreduce.h" |
| 15 |
| 16 // TODO(stichnot): Extend to i16 and i8 types, and also test the |
| 17 // commutativity transformations. This may require hand-generating |
| 18 // .ll files, because of C/C++ integer promotion rules for arithmetic, |
| 19 // and because clang prefers to do its own commutativity |
| 20 // transformation. |
| 21 |
| 22 #define X(constant, suffix) \ |
| 23 uint32_t multiplyByConst##suffix(uint32_t Val) { \ |
| 24 return Val * (uint32_t)constant; \ |
| 25 } \ |
| 26 int32_t multiplyByConst##suffix(int32_t Val) { \ |
| 27 return Val * (int32_t)constant; \ |
| 28 } |
| 29 CONST_TABLE |
| 30 #undef X |
OLD | NEW |