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
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
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
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
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
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