Commit Graph

  • 8276e912fd Switch to LLVM 3.1 for default for MSVC builds. Also fixes issue #374 Matt Pharr 2012-08-31 05:58:31 -07:00
  • e0490d0df5 Minor fixes needed for building on windows. Jean-Luc Duprat 2012-08-30 10:56:13 -07:00
  • 11db466a88 Implement the KNC prefetch API so that ISPC prefetch_*() stdlib functions may be used. Jean-Luc Duprat 2012-08-30 10:24:31 -07:00
  • caaee0b666 Fix crash when using launch with non-task-qualified function Matt Pharr 2012-08-29 09:06:12 -07:00
  • f2f470f369 Merge pull request #369 from jduprat/master Matt Pharr 2012-08-28 14:01:37 -07:00
  • 09bb36f58c Updated the task system in the example directory to support: Cilk (cilk_for), OpenMP (#pragma omp parallel for), TBB(tbb::task_group and tbb::parallel_for) as well as a new pthreads-based model that fully subscribes the machine (good for KNC). With major contributions from Ingo Wald and James Brodman. Jean-Luc Duprat 2012-08-28 11:13:12 -07:00
  • 21719df6fd remove assert that hit with fast-math if user defined their own functions named rcp() Matt Pharr 2012-08-21 16:39:36 -07:00
  • 39329809dd fix crash with malformed program Matt Pharr 2012-08-21 16:35:31 -07:00
  • 44797e2925 remove incorrect assert Matt Pharr 2012-08-21 16:27:49 -07:00
  • c8f373d119 Merge branch 'master' of https://github.com/ispc/ispc Jean-Luc Duprat 2012-08-15 17:42:00 -07:00
  • 8a22c63889 knc2x.h Introduced knc2x.h which supprts 2x interleaved code generation for KNC (use the target generic-32). This implementation is even more experimental and incomplete than knc.h but is useful already (mandelbrot works for example) Jean-Luc Duprat 2012-08-15 17:41:10 -07:00
  • 1a4434d314 Fix build with LLVM top-of-tree Matt Pharr 2012-08-10 15:44:36 -07:00
  • 165a13b13e knc.h: vec16_i64 improved with the addition of the following: __extract_element(), insert_element(), __sub(), __mul(), __sdiv(), __udiv(), __and(), __or(), __xor(), __shl(), __lshr(), __ashr(), __select() Fixed a bug in the __mul(__vec16_i64, __vec16_i32) implementation Constructors are all explicitly inlined, copy constructor and operator=() explicitly provided Load and stores for __vec16_i64 and __vec16_d use aligned instructions when possible __rotate_i32() now has a vector implementation Added several reductions: __reduce_add_i32(), __reduce_min_i32(), __reduce_max_i32(), __reduce_add_f(), __reduce_min_f(), __reduce_max_f() Jean-Luc Duprat 2012-08-10 12:20:10 -07:00
  • 43364b2d69 Loosen tolerances to test passes with FMA on AVX2 Matt Pharr 2012-08-10 06:52:14 -07:00
  • 6eaecd20d5 Mark __{get,set}_system_isa builtins as "internal" functions. Matt Pharr 2012-08-09 16:12:07 -07:00
  • c80bfeacf6 Fix crashes when input program tried to access undefined struct types. Matt Pharr 2012-08-09 14:59:29 -07:00
  • 2a19cc1758 Fix cases where we were trying to type cast instead of type convert. Matt Pharr 2012-08-03 12:47:53 -07:00
  • 8f5189f606 Type convert arrays in select expressions to pointers to the first element. Matt Pharr 2012-08-03 11:53:59 -07:00
  • 49dde7c6f2 Fix bug in declaration of double-precision sqrt intrinsic for AVX targets. Matt Pharr 2012-08-03 11:43:31 -07:00
  • 765a0d8896 Use puts() rather than printf() for printing assertion failure strings. Matt Pharr 2012-08-03 11:31:38 -07:00
  • 19d8f2e258 Generate FMA instructions with AVX2 (when possible). Matt Pharr 2012-08-03 10:43:41 -07:00
  • e6aec96e05 Fix build with LLVM top-of-tree Matt Pharr 2012-08-03 09:59:41 -07:00
  • a2d42c3242 KNC: all masked_load_*() and masked_store_*() functions need to do unaligned accesses Jean-Luc Duprat 2012-08-01 14:37:25 -07:00
  • 52836aae87 Minor documentation clarrification on the impact of ICC -fp-model except option. Jean-Luc Duprat 2012-08-01 10:24:35 -07:00
  • bda566d6a7 Fix incorrect assertion Matt Pharr 2012-08-01 08:11:08 -07:00
  • 63ed90b0fd docs/build.sh runs rst2html rather than rst2html.py Explicitly documented that fact that ICC needs the -mmic flag to compile for KNC. Updated ISPC User Guide with details on ICC compiler options that impact FP performance in generated code. Jean-Luc Duprat 2012-07-30 11:47:25 -07:00
  • 0bb4d282e2 Add sys/types.h include for linux/osx. Matt Pharr 2012-07-23 08:32:41 -07:00
  • ae89a65dad Fix bug that caused unterminated basic blocks. Matt Pharr 2012-07-23 08:23:53 -07:00
  • e9fe9f5043 Add cpu strings for Ivy Bridge and HSW. Matt Pharr 2012-07-23 08:23:27 -07:00
  • ce8dc5927c Fix bug in FunctionEmitContext::MatchIntegerTypes Matt Pharr 2012-07-20 10:05:17 -07:00
  • f6989cce38 Disallow native output with generic targets, C++ output with non-generic targets. Matt Pharr 2012-07-20 09:55:50 -07:00
  • 6dbbf9aa80 Merge branch 'master' of https://github.com/ispc/ispc Jean-Luc Duprat 2012-07-19 17:33:00 -07:00
  • fe6282e837 Fixed small issue with name mangling introduced in aecd6e08 Jean-Luc Duprat 2012-07-19 17:32:49 -07:00
  • 51210a869b Support core-avx-i and core-avx2 CPU types. Matt Pharr 2012-07-19 10:15:59 -07:00
  • 658652a9ff Merge pull request #331 from jduprat/master Matt Pharr 2012-07-18 16:39:38 -07:00
  • aecd6e0878 All the smear(), setzero() and undef() APIs are now templated on the return type. Modified ISPC's internal mangling to pass these through unchanged. Tried hard to make sure this is not going to introduce an ABI change. Jean-Luc Duprat 2012-07-17 17:06:36 -07:00
  • 1334a84861 Merge branch 'master' of https://github.com/ispc/ispc Jean-Luc Duprat 2012-07-17 11:46:30 -07:00
  • 6a410fc30e Emit gather instructions for the AVX2 targets. Matt Pharr 2012-07-13 12:29:05 -07:00
  • 984a68c3a9 Rename gen_gather() macro to gen_gather_factored() Matt Pharr 2012-07-13 12:20:42 -07:00
  • daf5aa8e8b Run inst combine before memory optimizations. Matt Pharr 2012-07-13 12:14:53 -07:00
  • 98b2e0e426 Fixes for intrinsics unsupported in earlier LLVM versions. Matt Pharr 2012-07-13 12:14:10 -07:00
  • 9a1932eaf7 Only set gcc's "-msse4.2", etc, option when compiling for generic targets. Matt Pharr 2012-07-13 12:01:04 -07:00
  • 371d4be8ef Fix bugs in detection of Ivy Bridge systems. Matt Pharr 2012-07-12 14:10:59 -07:00
  • d180031ef0 Add more tests of basic gather functionality. Matt Pharr 2012-07-12 13:56:58 -07:00
  • e09e953bbb Added a few functions: __setzero_i64() __cast_sext(__vec16_i64, __vec16_i32), __cast_zext(__vec16_i32) __min_varying_in32(), __min_varying_uint32(), __max_varying_int32(), __max_varying_uint32() Fixed the signature of __smear_i64() to match current codegen Jean-Luc Duprat 2012-07-12 10:32:38 -07:00
  • 2c640f7e52 Add support for RDRAND in IvyBridge. Matt Pharr 2012-07-12 06:07:07 -07:00
  • 2bacebb1fb Doc fixes (Crystal Lemire). Matt Pharr 2012-07-11 19:51:28 -07:00
  • df18b2a150 Fixed missing tmp var needed for use with gather intrinsic Jean-Luc Duprat 2012-07-11 15:43:11 -07:00
  • 216ac4b1a4 Stop factoring out constant offsets for gather/scatter if instr is available. Matt Pharr 2012-07-11 14:52:14 -07:00
  • 898cded646 Merge branch 'master' of https://github.com/ispc/ispc Jean-Luc Duprat 2012-07-11 14:45:00 -07:00
  • c09c87873e Whitespace / indentation fixes. Matt Pharr 2012-07-11 14:09:17 -07:00
  • 10b79fb41b Add support for non-factored variants of gather/scatter functions. Matt Pharr 2012-07-11 14:09:06 -07:00
  • ec0280be11 Rename gather/scatter_base_offsets functions to *factored_based_offsets*. Matt Pharr 2012-07-11 11:06:30 -07:00
  • 8e19d54e75 Merge pull request #328 from jduprat/explicit_isa_in_tests Matt Pharr 2012-07-10 20:49:37 -07:00
  • 3c070e5e20 run_tests.py will only attempt to use the -mmic flag when the knc.h header is used Jean-Luc Duprat 2012-07-10 17:07:56 -07:00
  • dde599f48f run_tests.py now picks the ISA via a -m flag based on the target selected, rather than always picking -msse4.2; this is needed because -msse4.2 is not supported on KNC. Jean-Luc Duprat 2012-07-10 16:39:18 -07:00
  • cc15ecfb3a Merge branch 'master' of https://github.com/ispc/ispc Jean-Luc Duprat 2012-07-10 16:36:08 -07:00
  • 7a7c54bd59 Minor fixes to knc.h that resulted from integrating bea88ab122 Jean-Luc Duprat 2012-07-10 16:10:48 -07:00
  • bea88ab122 Integrated changes from mmp/and-fold-opt: Jean-Luc Duprat 2012-07-10 10:33:24 -07:00
  • 926b3b9ee3 Fix bugs with mask-handling for switch/do/for/while statements. Matt Pharr 2012-07-09 15:13:30 -07:00
  • bc7775aef2 Fix __ordered and _unordered floating point functions for C++ target. Matt Pharr 2012-07-09 14:35:51 -07:00
  • 107669686c Fix naming of some comparison ops in knc.h Matt Pharr 2012-07-09 12:43:15 -07:00
  • bb11b3ab66 Fix build with LLVM 3.0 Matt Pharr 2012-07-09 10:45:36 -07:00
  • 516ba85abd Merge pull request #322 from mmp/vector-constants Jean-Luc Duprat 2012-07-09 09:28:26 -07:00
  • 098277b4f0 Merge pull request #321 from mmp/setzero Jean-Luc Duprat 2012-07-09 08:57:05 -07:00
  • 950a989744 Add test that was supposed to go with 080241b7d1 Matt Pharr 2012-07-09 08:21:15 -07:00
  • fb8b893b10 Fix incorrect LLVM_3_1svn tests. Matt Pharr 2012-07-09 07:09:25 -07:00
  • 9ca80debb8 Remove stale LLVM 2.9 support from builtins/util.m4 Matt Pharr 2012-07-09 06:54:29 -07:00
  • 080241b7d1 Fix bugs with handling types of integer constants. Matt Pharr 2012-07-08 08:43:03 -07:00
  • 0d534720bb Fix bug with constant folding of select expressions. Matt Pharr 2012-07-08 08:36:51 -07:00
  • 1dc4424a30 Only override module datalayout for generic targets. Matt Pharr 2012-07-07 15:09:35 -07:00
  • 57f0cf30c0 Fix small typos in documentation. Matt Pharr 2012-07-07 11:19:57 -07:00
  • 8ef6bc1636 Add peephole optimization to eliminate some mask AND operations. Matt Pharr 2012-07-07 08:35:38 -07:00
  • 974b40c8af Add type suffix to comparison ops in C++ output. Matt Pharr 2012-07-07 07:50:59 -07:00
  • 45e9e0be0b Map comparison predicates to strings for C++ output in a stand-alone function. Matt Pharr 2012-07-06 16:00:09 -07:00
  • ec0918045d Issue error if compiling for multiple targets and program is coming from stdin. Matt Pharr 2012-07-06 13:21:53 -07:00
  • 38bcecd2f3 Print a useful error if llvm-config isn't found when building. Matt Pharr 2012-07-06 13:18:11 -07:00
  • aabbdba068 Switch a few remaining fprintf() calls to use Warning()/Error(). Matt Pharr 2012-07-06 12:56:45 -07:00
  • 84c183da1f Issue error if a non "generic" target is used with C++ emission. Matt Pharr 2012-07-06 12:56:24 -07:00
  • b363b98211 Improve handling of datalayout for generic targets. Matt Pharr 2012-07-06 12:51:17 -07:00
  • 8defbeb248 Handle llvm.objectsize intrinsic in C++ backend. Matt Pharr 2012-07-06 12:29:23 -07:00
  • f52d227d80 Remove extra newline in error message Matt Pharr 2012-07-06 11:31:29 -07:00
  • 78cb45fb25 Improve error message with ambiguous function overloads. Matt Pharr 2012-07-06 11:25:57 -07:00
  • 2d8026625b Always check the execution mask after break/continue/return. Matt Pharr 2012-07-06 11:09:11 -07:00
  • 73afab464f Provide mask at block entry for switch statements. Matt Pharr 2012-07-06 11:08:05 -07:00
  • 8aa139b6be For C++ output, store constant vector values in local arrays. Matt Pharr 2012-07-06 08:57:09 -07:00
  • e5fe0eabdc Update __load() builtins to take const pointers. Matt Pharr 2012-07-06 08:47:47 -07:00
  • 0d3993fa25 More varied support for constant vectors from C++ backend. Matt Pharr 2012-07-05 20:19:11 -07:00
  • ac421f68e2 Ongoing support for int64 for KNC: Fixes to __load and __store. Added __add, __mul, __equal, __not_equal, __extract_elements, __smear_i64, __cast_sext, __cast_zext, and __scatter_base_offsets32_float. Jean-Luc Duprat 2012-07-05 17:05:42 -07:00
  • b9d1f0db18 Ongoing support for int64 for KNC: Fixes to __load and __store. Added __add, __mul, __equal, __not_equal, __extract_elements, __smear_i64, __cast_sext, __cast_zext, and __scatter_base_offsets32_float. Jean-Luc Duprat 2012-07-05 16:56:13 -07:00
  • 6aad4c7a39 Bump version number to 1.3.1dev Matt Pharr 2012-07-05 13:35:34 -07:00
  • 4186ef204d Fix build with LLVM top of tree. Matt Pharr 2012-07-05 13:34:40 -07:00
  • ae7a094ee0 Merge pull request #315 from NicolasT/master Matt Pharr 2012-07-04 08:21:03 -07:00
  • 3a007f939a Build: Include unistd.h where required Nicolas Trangez 2012-07-04 14:49:00 +02:00
  • b8503b9255 News and doxygen version number bump for 1.3.0 v1.3.0 Matt Pharr 2012-06-29 08:38:38 -07:00
  • b7bc76d3cc Documentation updates for 1.3.0. Matt Pharr 2012-06-29 08:35:29 -07:00
  • 27d6c12972 Bump ISPC_MINOR_VERSION to 3 Matt Pharr 2012-06-28 16:15:46 -07:00
  • b69d783e09 Bump version to 1.3.0 Matt Pharr 2012-06-28 15:35:52 -07:00
  • 3b2ff6301c Use fputs() rather than puts() for printing final result from print(). Matt Pharr 2012-06-28 12:29:40 -07:00
  • 6c7043916e Silence bogus compiler warning Matt Pharr 2012-06-28 08:29:40 -07:00