File: CMakeLists.txt

package info (click to toggle)
pocl 6.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 25,320 kB
  • sloc: lisp: 149,513; ansic: 103,778; cpp: 54,947; python: 1,513; sh: 949; ruby: 255; pascal: 226; tcl: 180; makefile: 175; java: 72; xml: 49
file content (1081 lines) | stat: -rw-r--r-- 52,539 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
#=============================================================================
#   CMake build system files
#
#   Copyright (c) 2015 pocl developers
#
#   Permission is hereby granted, free of charge, to any person obtaining a copy
#   of this software and associated documentation files (the "Software"), to deal
#   in the Software without restriction, including without limitation the rights
#   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#   copies of the Software, and to permit persons to whom the Software is
#   furnished to do so, subject to the following conditions:
#
#   The above copyright notice and this permission notice shall be included in
#   all copies or substantial portions of the Software.
#
#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
#   THE SOFTWARE.
#
#=============================================================================

set(TS_NAME Halide)
set(TS_BASEDIR "${TESTSUITE_BASEDIR}/${TS_NAME}")
set(TS_BUILDDIR "${TS_BASEDIR}/src/${TS_NAME}-build")
set(TS_SRCDIR "${TESTSUITE_SOURCE_BASEDIR}/${TS_NAME}")

# Halide disabled for now, need to find out which tests actually use OpenCL
if(0)

message(STATUS "Enabling testsuite ${TS_NAME}")
list(APPEND ACTUALLY_ENABLED_TESTSUITES "${TS_NAME}")
set(ACTUALLY_ENABLED_TESTSUITES ${ACTUALLY_ENABLED_TESTSUITES} PARENT_SCOPE)

if(EXAMPLES_USE_GIT_MASTER)
  set(FETCH_SOURCE GIT_REPOSITORY "https://github.com/Halide/Halide.git")
else()
  set(FETCH_SOURCE URL "https://github.com/halide/Halide/archive/release_2017_10_30.tar.gz")
endif()

ExternalProject_Add(
  ${TS_NAME}
  PREFIX "${TS_BASEDIR}"
  ${FETCH_SOURCE}
  #PATCH_COMMAND /bin/sh "${AMD_APP_SDK_TGZ}" --noexec --keep --target AMD-APP-SDK-3.0 &&
  #     patch -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/amdsdk3_0.patch
  CMAKE_ARGS
    -DCMAKE_BUILD_TYPE=RelWithDebInfo
    -DTARGET_ARM=OFF
    -DTARGET_AARCH64=OFF
    -DTARGET_MIPS=OFF
    -DTARGET_METAL=OFF
    -DTARGET_OPENCL=ON
    -DTARGET_OPENGL=OFF
    -DTARGET_OPENGLCOMPUTE=OFF
    -DTARGET_PTX=OFF
    -DTARGET_X86=ON
  CMAKE_CACHE_ARGS
    "-DLLVM_BIN:STRING=${LLVM_BINDIR}"
    "-DLLVM_LIB:STRING=${LLVM_LIBDIR}"
    "-DLLVM_INCLUDE:STRING=${LLVM_INCLUDEDIR}"
    "-DLLVM_VERSION:STRING=${LLVM_MAJOR}${LLVM_MINOR}"
  INSTALL_COMMAND "/bin/true"
)

set_target_properties(${TS_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE)
add_dependencies(prepare_examples ${TS_NAME})

# TODO Probably not tests
# acquire_release.generator argvcall.generator cleanup_on_error.generator
# embed_image.generator example.generator extended_buffer_t.generator
# error_codes.generator gpu_object_lifetime.generator gpu_only.generator
# mandelbrot.generator matlab.generator metadata_tester.generator
# nested_externs.generator paramtest.generator pyramid.generator
# runtime.generator tiled_blur.generator tiled_blur_blur.generator
# user_context.generator user_context_insanity.generator

add_test(NAME halide_bilateral_grid
         COMMAND "${TS_BUILDDIR}/bin/bilateral_grid")
add_test(NAME halide_bitcode2cpp
         COMMAND "${TS_BUILDDIR}/bin/bitcode2cpp")
add_test(NAME halide_blur_test
         COMMAND "${TS_BUILDDIR}/bin/blur_test")
add_test(NAME halide_build_halide_h
         COMMAND "${TS_BUILDDIR}/bin/build_halide_h")
add_test(NAME halide_camera_pipe
         COMMAND "${TS_BUILDDIR}/bin/camera_pipe")
add_test(NAME halide_correctness_argmax
         COMMAND "${TS_BUILDDIR}/bin/correctness_argmax")
add_test(NAME halide_correctness_assertion_failure_in_parallel_for
         COMMAND "${TS_BUILDDIR}/bin/correctness_assertion_failure_in_parallel_for")
add_test(NAME halide_correctness_autotune_bug
         COMMAND "${TS_BUILDDIR}/bin/correctness_autotune_bug")
add_test(NAME halide_correctness_autotune_bug_2
         COMMAND "${TS_BUILDDIR}/bin/correctness_autotune_bug_2")
add_test(NAME halide_correctness_autotune_bug_3
         COMMAND "${TS_BUILDDIR}/bin/correctness_autotune_bug_3")
add_test(NAME halide_correctness_autotune_bug_4
         COMMAND "${TS_BUILDDIR}/bin/correctness_autotune_bug_4")
add_test(NAME halide_correctness_autotune_bug_5
         COMMAND "${TS_BUILDDIR}/bin/correctness_autotune_bug_5")
add_test(NAME halide_correctness_bad_likely
         COMMAND "${TS_BUILDDIR}/bin/correctness_bad_likely")
add_test(NAME halide_correctness_bit_counting
         COMMAND "${TS_BUILDDIR}/bin/correctness_bit_counting")
add_test(NAME halide_correctness_bitwise_ops
         COMMAND "${TS_BUILDDIR}/bin/correctness_bitwise_ops")
add_test(NAME halide_correctness_bool_compute_root_vectorize
         COMMAND "${TS_BUILDDIR}/bin/correctness_bool_compute_root_vectorize")
add_test(NAME halide_correctness_bound
         COMMAND "${TS_BUILDDIR}/bin/correctness_bound")
add_test(NAME halide_correctness_boundary_conditions
         COMMAND "${TS_BUILDDIR}/bin/correctness_boundary_conditions")
add_test(NAME halide_correctness_bounds
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds")
add_test(NAME halide_correctness_bounds_inference
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_inference")
add_test(NAME halide_correctness_bounds_inference_chunk
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_inference_chunk")
add_test(NAME halide_correctness_bounds_inference_complex
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_inference_complex")
add_test(NAME halide_correctness_bounds_of_abs
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_of_abs")
add_test(NAME halide_correctness_bounds_of_cast
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_of_cast")
add_test(NAME halide_correctness_bounds_of_func
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_of_func")
add_test(NAME halide_correctness_bounds_of_monotonic_math
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_of_monotonic_math")
add_test(NAME halide_correctness_bounds_query
         COMMAND "${TS_BUILDDIR}/bin/correctness_bounds_query")
add_test(NAME halide_correctness_buffer_t
         COMMAND "${TS_BUILDDIR}/bin/correctness_buffer_t")
add_test(NAME halide_correctness_cascaded_filters
         COMMAND "${TS_BUILDDIR}/bin/correctness_cascaded_filters")
add_test(NAME halide_correctness_cast
         COMMAND "${TS_BUILDDIR}/bin/correctness_cast")
add_test(NAME halide_correctness_cast_handle
         COMMAND "${TS_BUILDDIR}/bin/correctness_cast_handle")
add_test(NAME halide_correctness_c_function
         COMMAND "${TS_BUILDDIR}/bin/correctness_c_function")
add_test(NAME halide_correctness_chunk
         COMMAND "${TS_BUILDDIR}/bin/correctness_chunk")
add_test(NAME halide_correctness_chunk_sharing
         COMMAND "${TS_BUILDDIR}/bin/correctness_chunk_sharing")
add_test(NAME halide_correctness_circular_reference_leak
         COMMAND "${TS_BUILDDIR}/bin/correctness_circular_reference_leak")
add_test(NAME halide_correctness_code_explosion
         COMMAND "${TS_BUILDDIR}/bin/correctness_code_explosion")
add_test(NAME halide_correctness_compare_vars
         COMMAND "${TS_BUILDDIR}/bin/correctness_compare_vars")
add_test(NAME halide_correctness_compile_to
         COMMAND "${TS_BUILDDIR}/bin/correctness_compile_to")
add_test(NAME halide_correctness_compile_to_bitcode
         COMMAND "${TS_BUILDDIR}/bin/correctness_compile_to_bitcode")
add_test(NAME halide_correctness_compile_to_lowered_stmt
         COMMAND "${TS_BUILDDIR}/bin/correctness_compile_to_lowered_stmt")
add_test(NAME halide_correctness_compute_at_split_rvar
         COMMAND "${TS_BUILDDIR}/bin/correctness_compute_at_split_rvar")
add_test(NAME halide_correctness_computed_index
         COMMAND "${TS_BUILDDIR}/bin/correctness_computed_index")
add_test(NAME halide_correctness_compute_outermost
         COMMAND "${TS_BUILDDIR}/bin/correctness_compute_outermost")
add_test(NAME halide_correctness_constant_expr
         COMMAND "${TS_BUILDDIR}/bin/correctness_constant_expr")
add_test(NAME halide_correctness_constant_type
         COMMAND "${TS_BUILDDIR}/bin/correctness_constant_type")
add_test(NAME halide_correctness_constraints
         COMMAND "${TS_BUILDDIR}/bin/correctness_constraints")
add_test(NAME halide_correctness_convolution
         COMMAND "${TS_BUILDDIR}/bin/correctness_convolution")
add_test(NAME halide_correctness_convolution_multiple_kernels
         COMMAND "${TS_BUILDDIR}/bin/correctness_convolution_multiple_kernels")
add_test(NAME halide_correctness_cross_compilation
         COMMAND "${TS_BUILDDIR}/bin/correctness_cross_compilation")
add_test(NAME halide_correctness_custom_allocator
         COMMAND "${TS_BUILDDIR}/bin/correctness_custom_allocator")
add_test(NAME halide_correctness_custom_error_reporter
         COMMAND "${TS_BUILDDIR}/bin/correctness_custom_error_reporter")
add_test(NAME halide_correctness_custom_lowering_pass
         COMMAND "${TS_BUILDDIR}/bin/correctness_custom_lowering_pass")
add_test(NAME halide_correctness_debug_to_file
         COMMAND "${TS_BUILDDIR}/bin/correctness_debug_to_file")
add_test(NAME halide_correctness_deinterleave4
         COMMAND "${TS_BUILDDIR}/bin/correctness_deinterleave4")
add_test(NAME halide_correctness_div_mod
         COMMAND "${TS_BUILDDIR}/bin/correctness_div_mod")
add_test(NAME halide_correctness_dynamic_reduction_bounds
         COMMAND "${TS_BUILDDIR}/bin/correctness_dynamic_reduction_bounds")
add_test(NAME halide_correctness_erf
         COMMAND "${TS_BUILDDIR}/bin/correctness_erf")
add_test(NAME halide_correctness_exception
         COMMAND "${TS_BUILDDIR}/bin/correctness_exception")
add_test(NAME halide_correctness_explicit_inline_reductions
         COMMAND "${TS_BUILDDIR}/bin/correctness_explicit_inline_reductions")
add_test(NAME halide_correctness_extern_bounds_inference
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_bounds_inference")
add_test(NAME halide_correctness_extern_consumer
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_consumer")
add_test(NAME halide_correctness_extern_error
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_error")
add_test(NAME halide_correctness_extern_output_expansion
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_output_expansion")
add_test(NAME halide_correctness_extern_producer
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_producer")
add_test(NAME halide_correctness_extern_sort
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_sort")
add_test(NAME halide_correctness_extern_stage
         COMMAND "${TS_BUILDDIR}/bin/correctness_extern_stage")
add_test(NAME halide_correctness_fibonacci
         COMMAND "${TS_BUILDDIR}/bin/correctness_fibonacci")
add_test(NAME halide_correctness_float16_t_comparison
         COMMAND "${TS_BUILDDIR}/bin/correctness_float16_t_comparison")
add_test(NAME halide_correctness_float16_t_constants
         COMMAND "${TS_BUILDDIR}/bin/correctness_float16_t_constants")
add_test(NAME halide_correctness_float16_t_image_type
         COMMAND "${TS_BUILDDIR}/bin/correctness_float16_t_image_type")
add_test(NAME halide_correctness_float16_t_implicit_upcast
         COMMAND "${TS_BUILDDIR}/bin/correctness_float16_t_implicit_upcast")
add_test(NAME halide_correctness_float16_t_realize_constant
         COMMAND "${TS_BUILDDIR}/bin/correctness_float16_t_realize_constant")
add_test(NAME halide_correctness_func_lifetime
         COMMAND "${TS_BUILDDIR}/bin/correctness_func_lifetime")
add_test(NAME halide_correctness_func_lifetime_2
         COMMAND "${TS_BUILDDIR}/bin/correctness_func_lifetime_2")
add_test(NAME halide_correctness_fuse
         COMMAND "${TS_BUILDDIR}/bin/correctness_fuse")
add_test(NAME halide_correctness_fused_where_inner_extent_is_zero
         COMMAND "${TS_BUILDDIR}/bin/correctness_fused_where_inner_extent_is_zero")
add_test(NAME halide_correctness_fuzz_simplify
         COMMAND "${TS_BUILDDIR}/bin/correctness_fuzz_simplify")
add_test(NAME halide_correctness_gameoflife
         COMMAND "${TS_BUILDDIR}/bin/correctness_gameoflife")
add_test(NAME halide_correctness_gpu_data_flows
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_data_flows")
add_test(NAME halide_correctness_gpu_dynamic_shared
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_dynamic_shared")
add_test(NAME halide_correctness_gpu_free_sync
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_free_sync")
add_test(NAME halide_correctness_gpu_large_alloc
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_large_alloc")
add_test(NAME halide_correctness_gpu_mixed_dimensionality
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_mixed_dimensionality")
add_test(NAME halide_correctness_gpu_mixed_shared_mem_types
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_mixed_shared_mem_types")
add_test(NAME halide_correctness_gpu_multi_device
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_multi_device")
add_test(NAME halide_correctness_gpu_multi_kernel
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_multi_kernel")
add_test(NAME halide_correctness_gpu_non_contiguous_copy
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_non_contiguous_copy")
add_test(NAME halide_correctness_gpu_object_lifetime
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_object_lifetime")
add_test(NAME halide_correctness_gpu_specialize
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_specialize")
add_test(NAME halide_correctness_gpu_sum_scan
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_sum_scan")
add_test(NAME halide_correctness_gpu_thread_barrier
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_thread_barrier")
add_test(NAME halide_correctness_gpu_transpose
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_transpose")
add_test(NAME halide_correctness_gpu_vectorize_div_mod
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_vectorize_div_mod")
add_test(NAME halide_correctness_gpu_vectorized_shared_memory
         COMMAND "${TS_BUILDDIR}/bin/correctness_gpu_vectorized_shared_memory")
add_test(NAME halide_correctness_handle
         COMMAND "${TS_BUILDDIR}/bin/correctness_handle")
add_test(NAME halide_correctness_heap_cleanup
         COMMAND "${TS_BUILDDIR}/bin/correctness_heap_cleanup")
add_test(NAME halide_correctness_hello_gpu
         COMMAND "${TS_BUILDDIR}/bin/correctness_hello_gpu")
add_test(NAME halide_correctness_histogram
         COMMAND "${TS_BUILDDIR}/bin/correctness_histogram")
add_test(NAME halide_correctness_histogram_equalize
         COMMAND "${TS_BUILDDIR}/bin/correctness_histogram_equalize")
add_test(NAME halide_correctness_image_of_lists
         COMMAND "${TS_BUILDDIR}/bin/correctness_image_of_lists")
add_test(NAME halide_correctness_implicit_args
         COMMAND "${TS_BUILDDIR}/bin/correctness_implicit_args")
add_test(NAME halide_correctness_infer_arguments
         COMMAND "${TS_BUILDDIR}/bin/correctness_infer_arguments")
add_test(NAME halide_correctness_inline_reduction
         COMMAND "${TS_BUILDDIR}/bin/correctness_inline_reduction")
add_test(NAME halide_correctness_in_place
         COMMAND "${TS_BUILDDIR}/bin/correctness_in_place")
add_test(NAME halide_correctness_input_image_bounds_check
         COMMAND "${TS_BUILDDIR}/bin/correctness_input_image_bounds_check")
add_test(NAME halide_correctness_input_larger_than_two_gigs
         COMMAND "${TS_BUILDDIR}/bin/correctness_input_larger_than_two_gigs")
add_test(NAME halide_correctness_integer_powers
         COMMAND "${TS_BUILDDIR}/bin/correctness_integer_powers")
add_test(NAME halide_correctness_interleave
         COMMAND "${TS_BUILDDIR}/bin/correctness_interleave")
add_test(NAME halide_correctness_introspection
         COMMAND "${TS_BUILDDIR}/bin/correctness_introspection")
add_test(NAME halide_correctness_inverse
         COMMAND "${TS_BUILDDIR}/bin/correctness_inverse")
add_test(NAME halide_correctness_isnan
         COMMAND "${TS_BUILDDIR}/bin/correctness_isnan")
add_test(NAME halide_correctness_iterate_over_circle
         COMMAND "${TS_BUILDDIR}/bin/correctness_iterate_over_circle")
add_test(NAME halide_correctness_lambda
         COMMAND "${TS_BUILDDIR}/bin/correctness_lambda")
add_test(NAME halide_correctness_lazy_convolution
         COMMAND "${TS_BUILDDIR}/bin/correctness_lazy_convolution")
add_test(NAME halide_correctness_legal_race_condition
         COMMAND "${TS_BUILDDIR}/bin/correctness_legal_race_condition")
add_test(NAME halide_correctness_lerp
         COMMAND "${TS_BUILDDIR}/bin/correctness_lerp")
add_test(NAME halide_correctness_likely
         COMMAND "${TS_BUILDDIR}/bin/correctness_likely")
add_test(NAME halide_correctness_logical
         COMMAND "${TS_BUILDDIR}/bin/correctness_logical")
add_test(NAME halide_correctness_loop_invariant_extern_calls
         COMMAND "${TS_BUILDDIR}/bin/correctness_loop_invariant_extern_calls")
add_test(NAME halide_correctness_make_struct
         COMMAND "${TS_BUILDDIR}/bin/correctness_make_struct")
add_test(NAME halide_correctness_many_dimensions
         COMMAND "${TS_BUILDDIR}/bin/correctness_many_dimensions")
add_test(NAME halide_correctness_many_small_extern_stages
         COMMAND "${TS_BUILDDIR}/bin/correctness_many_small_extern_stages")
add_test(NAME halide_correctness_many_updates
         COMMAND "${TS_BUILDDIR}/bin/correctness_many_updates")
add_test(NAME halide_correctness_math
         COMMAND "${TS_BUILDDIR}/bin/correctness_math")
add_test(NAME halide_correctness_memoize
         COMMAND "${TS_BUILDDIR}/bin/correctness_memoize")
add_test(NAME halide_correctness_min_extent
         COMMAND "${TS_BUILDDIR}/bin/correctness_min_extent")
add_test(NAME halide_correctness_mod
         COMMAND "${TS_BUILDDIR}/bin/correctness_mod")
add_test(NAME halide_correctness_multi_output_pipeline_with_bad_sizes
         COMMAND "${TS_BUILDDIR}/bin/correctness_multi_output_pipeline_with_bad_sizes")
add_test(NAME halide_correctness_multipass_constraints
         COMMAND "${TS_BUILDDIR}/bin/correctness_multipass_constraints")
add_test(NAME halide_correctness_multi_pass_reduction
         COMMAND "${TS_BUILDDIR}/bin/correctness_multi_pass_reduction")
add_test(NAME halide_correctness_multiple_outputs
         COMMAND "${TS_BUILDDIR}/bin/correctness_multiple_outputs")
add_test(NAME halide_correctness_multi_way_select
         COMMAND "${TS_BUILDDIR}/bin/correctness_multi_way_select")
add_test(NAME halide_correctness_named_updates
         COMMAND "${TS_BUILDDIR}/bin/correctness_named_updates")
add_test(NAME halide_correctness_newtons_method
         COMMAND "${TS_BUILDDIR}/bin/correctness_newtons_method")
add_test(NAME halide_correctness_obscure_image_references
         COMMAND "${TS_BUILDDIR}/bin/correctness_obscure_image_references")
add_test(NAME halide_correctness_oddly_sized_output
         COMMAND "${TS_BUILDDIR}/bin/correctness_oddly_sized_output")
add_test(NAME halide_correctness_out_of_memory
         COMMAND "${TS_BUILDDIR}/bin/correctness_out_of_memory")
add_test(NAME halide_correctness_output_larger_than_two_gigs
         COMMAND "${TS_BUILDDIR}/bin/correctness_output_larger_than_two_gigs")
add_test(NAME halide_correctness_parallel
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel")
add_test(NAME halide_correctness_parallel_alloc
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel_alloc")
add_test(NAME halide_correctness_parallel_gpu_nested
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel_gpu_nested")
add_test(NAME halide_correctness_parallel_nested
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel_nested")
add_test(NAME halide_correctness_parallel_reductions
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel_reductions")
add_test(NAME halide_correctness_parallel_rvar
         COMMAND "${TS_BUILDDIR}/bin/correctness_parallel_rvar")
add_test(NAME halide_correctness_param
         COMMAND "${TS_BUILDDIR}/bin/correctness_param")
add_test(NAME halide_correctness_parameter_constraints
         COMMAND "${TS_BUILDDIR}/bin/correctness_parameter_constraints")
add_test(NAME halide_correctness_partial_application
         COMMAND "${TS_BUILDDIR}/bin/correctness_partial_application")
add_test(NAME halide_correctness_partition_loops_bug
         COMMAND "${TS_BUILDDIR}/bin/correctness_partition_loops_bug")
add_test(NAME halide_correctness_pipeline_set_jit_externs_func
         COMMAND "${TS_BUILDDIR}/bin/correctness_pipeline_set_jit_externs_func")
add_test(NAME halide_correctness_print
         COMMAND "${TS_BUILDDIR}/bin/correctness_print")
add_test(NAME halide_correctness_process_some_tiles
         COMMAND "${TS_BUILDDIR}/bin/correctness_process_some_tiles")
add_test(NAME halide_correctness_random
         COMMAND "${TS_BUILDDIR}/bin/correctness_random")
add_test(NAME halide_correctness_realize_larger_than_two_gigs
         COMMAND "${TS_BUILDDIR}/bin/correctness_realize_larger_than_two_gigs")
add_test(NAME halide_correctness_realize_over_shifted_domain
         COMMAND "${TS_BUILDDIR}/bin/correctness_realize_over_shifted_domain")
add_test(NAME halide_correctness_reduction_chain
         COMMAND "${TS_BUILDDIR}/bin/correctness_reduction_chain")
add_test(NAME halide_correctness_reduction_schedule
         COMMAND "${TS_BUILDDIR}/bin/correctness_reduction_schedule")
add_test(NAME halide_correctness_reduction_subregion
         COMMAND "${TS_BUILDDIR}/bin/correctness_reduction_subregion")
add_test(NAME halide_correctness_reorder_rvars
         COMMAND "${TS_BUILDDIR}/bin/correctness_reorder_rvars")
add_test(NAME halide_correctness_reorder_storage
         COMMAND "${TS_BUILDDIR}/bin/correctness_reorder_storage")
add_test(NAME halide_correctness_reschedule
         COMMAND "${TS_BUILDDIR}/bin/correctness_reschedule")
add_test(NAME halide_correctness_reuse_stack_alloc
         COMMAND "${TS_BUILDDIR}/bin/correctness_reuse_stack_alloc")
add_test(NAME halide_correctness_round
         COMMAND "${TS_BUILDDIR}/bin/correctness_round")
add_test(NAME halide_correctness_runtime_float16_t_upcast
         COMMAND "${TS_BUILDDIR}/bin/correctness_runtime_float16_t_upcast")
add_test(NAME halide_correctness_scatter
         COMMAND "${TS_BUILDDIR}/bin/correctness_scatter")
add_test(NAME halide_correctness_shared_self_references
         COMMAND "${TS_BUILDDIR}/bin/correctness_shared_self_references")
add_test(NAME halide_correctness_shifted_image
         COMMAND "${TS_BUILDDIR}/bin/correctness_shifted_image")
add_test(NAME halide_correctness_side_effects
         COMMAND "${TS_BUILDDIR}/bin/correctness_side_effects")
add_test(NAME halide_correctness_simd_op_check
         COMMAND "${TS_BUILDDIR}/bin/correctness_simd_op_check")
add_test(NAME halide_correctness_simplified_away_embedded_image
         COMMAND "${TS_BUILDDIR}/bin/correctness_simplified_away_embedded_image")
add_test(NAME halide_correctness_skip_stages
         COMMAND "${TS_BUILDDIR}/bin/correctness_skip_stages")
add_test(NAME halide_correctness_skip_stages_external_array_functions
         COMMAND "${TS_BUILDDIR}/bin/correctness_skip_stages_external_array_functions")
add_test(NAME halide_correctness_sliding_backwards
         COMMAND "${TS_BUILDDIR}/bin/correctness_sliding_backwards")
add_test(NAME halide_correctness_sliding_reduction
         COMMAND "${TS_BUILDDIR}/bin/correctness_sliding_reduction")
add_test(NAME halide_correctness_sliding_window
         COMMAND "${TS_BUILDDIR}/bin/correctness_sliding_window")
add_test(NAME halide_correctness_sort_exprs
         COMMAND "${TS_BUILDDIR}/bin/correctness_sort_exprs")
add_test(NAME halide_correctness_specialize
         COMMAND "${TS_BUILDDIR}/bin/correctness_specialize")
add_test(NAME halide_correctness_specialize_to_gpu
         COMMAND "${TS_BUILDDIR}/bin/correctness_specialize_to_gpu")
add_test(NAME halide_correctness_split_fuse_rvar
         COMMAND "${TS_BUILDDIR}/bin/correctness_split_fuse_rvar")
add_test(NAME halide_correctness_split_reuse_inner_name_bug
         COMMAND "${TS_BUILDDIR}/bin/correctness_split_reuse_inner_name_bug")
add_test(NAME halide_correctness_split_store_compute
         COMMAND "${TS_BUILDDIR}/bin/correctness_split_store_compute")
add_test(NAME halide_correctness_stack_allocations
         COMMAND "${TS_BUILDDIR}/bin/correctness_stack_allocations")
add_test(NAME halide_correctness_stmt_to_html
         COMMAND "${TS_BUILDDIR}/bin/correctness_stmt_to_html")
add_test(NAME halide_correctness_storage_folding
         COMMAND "${TS_BUILDDIR}/bin/correctness_storage_folding")
add_test(NAME halide_correctness_stream_compaction
         COMMAND "${TS_BUILDDIR}/bin/correctness_stream_compaction")
add_test(NAME halide_correctness_strided_load
         COMMAND "${TS_BUILDDIR}/bin/correctness_strided_load")
add_test(NAME halide_correctness_target
         COMMAND "${TS_BUILDDIR}/bin/correctness_target")
add_test(NAME halide_correctness_tracing
         COMMAND "${TS_BUILDDIR}/bin/correctness_tracing")
add_test(NAME halide_correctness_tracing_bounds
         COMMAND "${TS_BUILDDIR}/bin/correctness_tracing_bounds")
add_test(NAME halide_correctness_tracing_stack
         COMMAND "${TS_BUILDDIR}/bin/correctness_tracing_stack")
add_test(NAME halide_correctness_transitive_bounds
         COMMAND "${TS_BUILDDIR}/bin/correctness_transitive_bounds")
add_test(NAME halide_correctness_tuple_reduction
         COMMAND "${TS_BUILDDIR}/bin/correctness_tuple_reduction")
add_test(NAME halide_correctness_two_vector_args
         COMMAND "${TS_BUILDDIR}/bin/correctness_two_vector_args")
add_test(NAME halide_correctness_undef
         COMMAND "${TS_BUILDDIR}/bin/correctness_undef")
add_test(NAME halide_correctness_uninitialized_read
         COMMAND "${TS_BUILDDIR}/bin/correctness_uninitialized_read")
add_test(NAME halide_correctness_unique_func_image
         COMMAND "${TS_BUILDDIR}/bin/correctness_unique_func_image")
add_test(NAME halide_correctness_unrolled_reduction
         COMMAND "${TS_BUILDDIR}/bin/correctness_unrolled_reduction")
add_test(NAME halide_correctness_update_chunk
         COMMAND "${TS_BUILDDIR}/bin/correctness_update_chunk")
add_test(NAME halide_correctness_vector_bounds_inference
         COMMAND "${TS_BUILDDIR}/bin/correctness_vector_bounds_inference")
add_test(NAME halide_correctness_vector_cast
         COMMAND "${TS_BUILDDIR}/bin/correctness_vector_cast")
add_test(NAME halide_correctness_vector_extern
         COMMAND "${TS_BUILDDIR}/bin/correctness_vector_extern")
add_test(NAME halide_correctness_vectorized_initialization
         COMMAND "${TS_BUILDDIR}/bin/correctness_vectorized_initialization")
add_test(NAME halide_correctness_vectorized_reduction_bug
         COMMAND "${TS_BUILDDIR}/bin/correctness_vectorized_reduction_bug")
add_test(NAME halide_correctness_vectorize_mixed_widths
         COMMAND "${TS_BUILDDIR}/bin/correctness_vectorize_mixed_widths")
add_test(NAME halide_correctness_vector_math
         COMMAND "${TS_BUILDDIR}/bin/correctness_vector_math")
add_test(NAME halide_error_ambiguous_inline_reductions
         COMMAND "${TS_BUILDDIR}/bin/error_ambiguous_inline_reductions")
add_test(NAME halide_error_bad_bound
         COMMAND "${TS_BUILDDIR}/bin/error_bad_bound")
add_test(NAME halide_error_bad_compute_at
         COMMAND "${TS_BUILDDIR}/bin/error_bad_compute_at")
add_test(NAME halide_error_bad_const_cast
         COMMAND "${TS_BUILDDIR}/bin/error_bad_const_cast")
add_test(NAME halide_error_bad_rvar_order
         COMMAND "${TS_BUILDDIR}/bin/error_bad_rvar_order")
add_test(NAME halide_error_bad_schedule
         COMMAND "${TS_BUILDDIR}/bin/error_bad_schedule")
add_test(NAME halide_error_bad_store_at
         COMMAND "${TS_BUILDDIR}/bin/error_bad_store_at")
add_test(NAME halide_error_buffer_larger_than_two_gigs
         COMMAND "${TS_BUILDDIR}/bin/error_buffer_larger_than_two_gigs")
add_test(NAME halide_error_constrain_wrong_output_buffer
         COMMAND "${TS_BUILDDIR}/bin/error_constrain_wrong_output_buffer")
add_test(NAME halide_error_define_after_realize
         COMMAND "${TS_BUILDDIR}/bin/error_define_after_realize")
add_test(NAME halide_error_define_after_use
         COMMAND "${TS_BUILDDIR}/bin/error_define_after_use")
add_test(NAME halide_error_expanding_reduction
         COMMAND "${TS_BUILDDIR}/bin/error_expanding_reduction")
add_test(NAME halide_error_five_d_gpu_buffer
         COMMAND "${TS_BUILDDIR}/bin/error_five_d_gpu_buffer")
add_test(NAME halide_error_float16_t_implicit_downcast
         COMMAND "${TS_BUILDDIR}/bin/error_float16_t_implicit_downcast")
add_test(NAME halide_error_float16_t_overflow
         COMMAND "${TS_BUILDDIR}/bin/error_float16_t_overflow")
add_test(NAME halide_error_float16_t_overflow_int_conv
         COMMAND "${TS_BUILDDIR}/bin/error_float16_t_overflow_int_conv")
add_test(NAME halide_error_float_arg
         COMMAND "${TS_BUILDDIR}/bin/error_float_arg")
add_test(NAME halide_error_impossible_constraints
         COMMAND "${TS_BUILDDIR}/bin/error_impossible_constraints")
add_test(NAME halide_error_lerp_float_weight_out_of_range
         COMMAND "${TS_BUILDDIR}/bin/error_lerp_float_weight_out_of_range")
add_test(NAME halide_error_lerp_mismatch
         COMMAND "${TS_BUILDDIR}/bin/error_lerp_mismatch")
add_test(NAME halide_error_lerp_signed_weight
         COMMAND "${TS_BUILDDIR}/bin/error_lerp_signed_weight")
add_test(NAME halide_error_memoize_different_compute_store
         COMMAND "${TS_BUILDDIR}/bin/error_memoize_different_compute_store")
add_test(NAME halide_error_missing_args
         COMMAND "${TS_BUILDDIR}/bin/error_missing_args")
add_test(NAME halide_error_modulo_constant_zero
         COMMAND "${TS_BUILDDIR}/bin/error_modulo_constant_zero")
add_test(NAME halide_error_nonexistent_update_stage
         COMMAND "${TS_BUILDDIR}/bin/error_nonexistent_update_stage")
add_test(NAME halide_error_old_implicit_args
         COMMAND "${TS_BUILDDIR}/bin/error_old_implicit_args")
add_test(NAME halide_error_pointer_arithmetic
         COMMAND "${TS_BUILDDIR}/bin/error_pointer_arithmetic")
add_test(NAME halide_error_race_condition
         COMMAND "${TS_BUILDDIR}/bin/error_race_condition")
add_test(NAME halide_error_realize_constantly_larger_than_two_gigs
         COMMAND "${TS_BUILDDIR}/bin/error_realize_constantly_larger_than_two_gigs")
add_test(NAME halide_error_reduction_bounds
         COMMAND "${TS_BUILDDIR}/bin/error_reduction_bounds")
add_test(NAME halide_error_reduction_type_mismatch
         COMMAND "${TS_BUILDDIR}/bin/error_reduction_type_mismatch")
add_test(NAME halide_error_reused_args
         COMMAND "${TS_BUILDDIR}/bin/error_reused_args")
add_test(NAME halide_error_reuse_var_in_schedule
         COMMAND "${TS_BUILDDIR}/bin/error_reuse_var_in_schedule")
add_test(NAME halide_error_thread_id_outside_block_id
         COMMAND "${TS_BUILDDIR}/bin/error_thread_id_outside_block_id")
add_test(NAME halide_error_too_many_args
         COMMAND "${TS_BUILDDIR}/bin/error_too_many_args")
add_test(NAME halide_error_unbounded_input
         COMMAND "${TS_BUILDDIR}/bin/error_unbounded_input")
add_test(NAME halide_error_unbounded_output
         COMMAND "${TS_BUILDDIR}/bin/error_unbounded_output")
add_test(NAME halide_error_undefined_rdom_dimension
         COMMAND "${TS_BUILDDIR}/bin/error_undefined_rdom_dimension")
add_test(NAME halide_error_vectorize_dynamic
         COMMAND "${TS_BUILDDIR}/bin/error_vectorize_dynamic")
add_test(NAME halide_error_vectorize_too_little
         COMMAND "${TS_BUILDDIR}/bin/error_vectorize_too_little")
add_test(NAME halide_error_vectorize_too_much
         COMMAND "${TS_BUILDDIR}/bin/error_vectorize_too_much")
add_test(NAME halide_error_wrong_type
         COMMAND "${TS_BUILDDIR}/bin/error_wrong_type")
add_test(NAME halide_filter
         COMMAND "${TS_BUILDDIR}/bin/filter")
add_test(NAME halide_generator_aot_acquire_release
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_acquire_release")
add_test(NAME halide_generator_aot_argvcall
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_argvcall")
add_test(NAME halide_generator_aot_cleanup_on_error
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_cleanup_on_error")
add_test(NAME halide_generator_aot_embed_image
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_embed_image")
add_test(NAME halide_generator_aot_error_codes
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_error_codes")
add_test(NAME halide_generator_aot_example
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_example")
add_test(NAME halide_generator_aot_extended_buffer_t
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_extended_buffer_t")
add_test(NAME halide_generator_aot_gpu_object_lifetime
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_gpu_object_lifetime")
add_test(NAME halide_generator_aot_gpu_only
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_gpu_only")
add_test(NAME halide_generator_aot_mandelbrot
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_mandelbrot")
add_test(NAME halide_generator_aot_matlab
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_matlab")
add_test(NAME halide_generator_aot_metadata_tester
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_metadata_tester")
add_test(NAME halide_generator_aot_nested_externs
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_nested_externs")
add_test(NAME halide_generator_aot_pyramid
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_pyramid")
add_test(NAME halide_generator_aot_tiled_blur
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_tiled_blur")
add_test(NAME halide_generator_aot_tiled_blur_interleaved
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_tiled_blur_interleaved")
add_test(NAME halide_generator_aot_user_context
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_user_context")
add_test(NAME halide_generator_aot_user_context_insanity
         COMMAND "${TS_BUILDDIR}/bin/generator_aot_user_context_insanity")
add_test(NAME halide_generator_jit_example
         COMMAND "${TS_BUILDDIR}/bin/generator_jit_example")
add_test(NAME halide_generator_jit_paramtest
         COMMAND "${TS_BUILDDIR}/bin/generator_jit_paramtest")
add_test(NAME halide_halide_blur
         COMMAND "${TS_BUILDDIR}/bin/halide_blur")
add_test(NAME halide_HalideTraceViz
         COMMAND "${TS_BUILDDIR}/bin/HalideTraceViz")
add_test(NAME halide_lesson_01_basics
         COMMAND "${TS_BUILDDIR}/bin/lesson_01_basics")
add_test(NAME halide_lesson_02_input_image
         COMMAND "${TS_BUILDDIR}/bin/lesson_02_input_image")
add_test(NAME halide_lesson_03_debugging_1
         COMMAND "${TS_BUILDDIR}/bin/lesson_03_debugging_1")
add_test(NAME halide_lesson_04_debugging_2
         COMMAND "${TS_BUILDDIR}/bin/lesson_04_debugging_2")
add_test(NAME halide_lesson_05_scheduling_1
         COMMAND "${TS_BUILDDIR}/bin/lesson_05_scheduling_1")
add_test(NAME halide_lesson_06_realizing_over_shifted_domains
         COMMAND "${TS_BUILDDIR}/bin/lesson_06_realizing_over_shifted_domains")
add_test(NAME halide_lesson_07_multi_stage_pipelines
         COMMAND "${TS_BUILDDIR}/bin/lesson_07_multi_stage_pipelines")
add_test(NAME halide_lesson_08_scheduling_2
         COMMAND "${TS_BUILDDIR}/bin/lesson_08_scheduling_2")
add_test(NAME halide_lesson_09_update_definitions
         COMMAND "${TS_BUILDDIR}/bin/lesson_09_update_definitions")
add_test(NAME halide_lesson_10_aot_compilation_generate
         COMMAND "${TS_BUILDDIR}/bin/lesson_10_aot_compilation_generate")
add_test(NAME halide_lesson_10_aot_compilation_run
         COMMAND "${TS_BUILDDIR}/bin/lesson_10_aot_compilation_run")
add_test(NAME halide_lesson_11_cross_compilation
         COMMAND "${TS_BUILDDIR}/bin/lesson_11_cross_compilation")
add_test(NAME halide_lesson_12_using_the_gpu
         COMMAND "${TS_BUILDDIR}/bin/lesson_12_using_the_gpu")
add_test(NAME halide_lesson_13_tuples
         COMMAND "${TS_BUILDDIR}/bin/lesson_13_tuples")
add_test(NAME halide_lesson_14_types
         COMMAND "${TS_BUILDDIR}/bin/lesson_14_types")
add_test(NAME halide_ll_process
         COMMAND "${TS_BUILDDIR}/bin/ll_process")
add_test(NAME halide_local_laplacian_gen
         COMMAND "${TS_BUILDDIR}/bin/local_laplacian_gen")
add_test(NAME halide_performance_block_transpose
         COMMAND "${TS_BUILDDIR}/bin/performance_block_transpose")
add_test(NAME halide_performance_boundary_conditions
         COMMAND "${TS_BUILDDIR}/bin/performance_boundary_conditions")
add_test(NAME halide_performance_clamped_vector_load
         COMMAND "${TS_BUILDDIR}/bin/performance_clamped_vector_load")
add_test(NAME halide_performance_const_division
         COMMAND "${TS_BUILDDIR}/bin/performance_const_division")
add_test(NAME halide_performance_fast_inverse
         COMMAND "${TS_BUILDDIR}/bin/performance_fast_inverse")
add_test(NAME halide_performance_fast_pow
         COMMAND "${TS_BUILDDIR}/bin/performance_fast_pow")
add_test(NAME halide_performance_inner_loop_parallel
         COMMAND "${TS_BUILDDIR}/bin/performance_inner_loop_parallel")
add_test(NAME halide_performance_jit_stress
         COMMAND "${TS_BUILDDIR}/bin/performance_jit_stress")
add_test(NAME halide_performance_matrix_multiplication
         COMMAND "${TS_BUILDDIR}/bin/performance_matrix_multiplication")
add_test(NAME halide_performance_memcpy
         COMMAND "${TS_BUILDDIR}/bin/performance_memcpy")
add_test(NAME halide_performance_packed_planar_fusion
         COMMAND "${TS_BUILDDIR}/bin/performance_packed_planar_fusion")
add_test(NAME halide_performance_parallel_performance
         COMMAND "${TS_BUILDDIR}/bin/performance_parallel_performance")
add_test(NAME halide_performance_profiler
         COMMAND "${TS_BUILDDIR}/bin/performance_profiler")
add_test(NAME halide_performance_rgb_interleaved
         COMMAND "${TS_BUILDDIR}/bin/performance_rgb_interleaved")
add_test(NAME halide_performance_sort
         COMMAND "${TS_BUILDDIR}/bin/performance_sort")
add_test(NAME halide_performance_vectorize
         COMMAND "${TS_BUILDDIR}/bin/performance_vectorize")
add_test(NAME halide_pipeline
         COMMAND "${TS_BUILDDIR}/bin/pipeline")
add_test(NAME halide_process
         COMMAND "${TS_BUILDDIR}/bin/process")
add_test(NAME halide_renderscript_aot_copy
         COMMAND "${TS_BUILDDIR}/bin/renderscript_aot_copy")
add_test(NAME halide_renderscript_aot_copy_error
         COMMAND "${TS_BUILDDIR}/bin/renderscript_aot_copy_error")
add_test(NAME halide_renderscript_jit_copy
         COMMAND "${TS_BUILDDIR}/bin/renderscript_jit_copy")
add_test(NAME halide_run_c_backend_and_native
         COMMAND "${TS_BUILDDIR}/bin/run_c_backend_and_native")
add_test(NAME halide_test_internal
         COMMAND "${TS_BUILDDIR}/bin/test_internal")
add_test(NAME halide_warning_double_vectorize
         COMMAND "${TS_BUILDDIR}/bin/warning_double_vectorize")
add_test(NAME halide_warning_float16_t_underflow
         COMMAND "${TS_BUILDDIR}/bin/warning_float16_t_underflow")
add_test(NAME halide_warning_hidden_pure_definition
         COMMAND "${TS_BUILDDIR}/bin/warning_hidden_pure_definition")
add_test(NAME halide_warning_parallel_size_one
         COMMAND "${TS_BUILDDIR}/bin/warning_parallel_size_one")
add_test(NAME halide_warning_vectorize_size_one
         COMMAND "${TS_BUILDDIR}/bin/warning_vectorize_size_one")



set_tests_properties(
  halide_bilateral_grid
  halide_bitcode2cpp
  halide_blur_test
  halide_build_halide_h
  halide_camera_pipe
  halide_correctness_argmax
  halide_correctness_assertion_failure_in_parallel_for
  halide_correctness_autotune_bug
  halide_correctness_autotune_bug_2
  halide_correctness_autotune_bug_3
  halide_correctness_autotune_bug_4
  halide_correctness_autotune_bug_5
  halide_correctness_bad_likely
  halide_correctness_bit_counting
  halide_correctness_bitwise_ops
  halide_correctness_bool_compute_root_vectorize
  halide_correctness_bound
  halide_correctness_boundary_conditions
  halide_correctness_bounds
  halide_correctness_bounds_inference
  halide_correctness_bounds_inference_chunk
  halide_correctness_bounds_inference_complex
  halide_correctness_bounds_of_abs
  halide_correctness_bounds_of_cast
  halide_correctness_bounds_of_func
  halide_correctness_bounds_of_monotonic_math
  halide_correctness_bounds_query
  halide_correctness_buffer_t
  halide_correctness_cascaded_filters
  halide_correctness_cast
  halide_correctness_cast_handle
  halide_correctness_c_function
  halide_correctness_chunk
  halide_correctness_chunk_sharing
  halide_correctness_circular_reference_leak
  halide_correctness_code_explosion
  halide_correctness_compare_vars
  halide_correctness_compile_to
  halide_correctness_compile_to_bitcode
  halide_correctness_compile_to_lowered_stmt
  halide_correctness_compute_at_split_rvar
  halide_correctness_computed_index
  halide_correctness_compute_outermost
  halide_correctness_constant_expr
  halide_correctness_constant_type
  halide_correctness_constraints
  halide_correctness_convolution
  halide_correctness_convolution_multiple_kernels
  halide_correctness_cross_compilation
  halide_correctness_custom_allocator
  halide_correctness_custom_error_reporter
  halide_correctness_custom_lowering_pass
  halide_correctness_debug_to_file
  halide_correctness_deinterleave4
  halide_correctness_div_mod
  halide_correctness_dynamic_reduction_bounds
  halide_correctness_erf
  halide_correctness_exception
  halide_correctness_explicit_inline_reductions
  halide_correctness_extern_bounds_inference
  halide_correctness_extern_consumer
  halide_correctness_extern_error
  halide_correctness_extern_output_expansion
  halide_correctness_extern_producer
  halide_correctness_extern_sort
  halide_correctness_extern_stage
  halide_correctness_fibonacci
  halide_correctness_float16_t_comparison
  halide_correctness_float16_t_constants
  halide_correctness_float16_t_image_type
  halide_correctness_float16_t_implicit_upcast
  halide_correctness_float16_t_realize_constant
  halide_correctness_func_lifetime
  halide_correctness_func_lifetime_2
  halide_correctness_fuse
  halide_correctness_fused_where_inner_extent_is_zero
  halide_correctness_fuzz_simplify
  halide_correctness_gameoflife
  halide_correctness_gpu_data_flows
  halide_correctness_gpu_dynamic_shared
  halide_correctness_gpu_free_sync
  halide_correctness_gpu_large_alloc
  halide_correctness_gpu_mixed_dimensionality
  halide_correctness_gpu_mixed_shared_mem_types
  halide_correctness_gpu_multi_device
  halide_correctness_gpu_multi_kernel
  halide_correctness_gpu_non_contiguous_copy
  halide_correctness_gpu_object_lifetime
  halide_correctness_gpu_specialize
  halide_correctness_gpu_sum_scan
  halide_correctness_gpu_thread_barrier
  halide_correctness_gpu_transpose
  halide_correctness_gpu_vectorize_div_mod
  halide_correctness_gpu_vectorized_shared_memory
  halide_correctness_handle
  halide_correctness_heap_cleanup
  halide_correctness_hello_gpu
  halide_correctness_histogram
  halide_correctness_histogram_equalize
  halide_correctness_image_of_lists
  halide_correctness_implicit_args
  halide_correctness_infer_arguments
  halide_correctness_inline_reduction
  halide_correctness_in_place
  halide_correctness_input_image_bounds_check
  halide_correctness_input_larger_than_two_gigs
  halide_correctness_integer_powers
  halide_correctness_interleave
  halide_correctness_introspection
  halide_correctness_inverse
  halide_correctness_isnan
  halide_correctness_iterate_over_circle
  halide_correctness_lambda
  halide_correctness_lazy_convolution
  halide_correctness_legal_race_condition
  halide_correctness_lerp
  halide_correctness_likely
  halide_correctness_logical
  halide_correctness_loop_invariant_extern_calls
  halide_correctness_make_struct
  halide_correctness_many_dimensions
  halide_correctness_many_small_extern_stages
  halide_correctness_many_updates
  halide_correctness_math
  halide_correctness_memoize
  halide_correctness_min_extent
  halide_correctness_mod
  halide_correctness_multi_output_pipeline_with_bad_sizes
  halide_correctness_multipass_constraints
  halide_correctness_multi_pass_reduction
  halide_correctness_multiple_outputs
  halide_correctness_multi_way_select
  halide_correctness_named_updates
  halide_correctness_newtons_method
  halide_correctness_obscure_image_references
  halide_correctness_oddly_sized_output
  halide_correctness_out_of_memory
  halide_correctness_output_larger_than_two_gigs
  halide_correctness_parallel
  halide_correctness_parallel_alloc
  halide_correctness_parallel_gpu_nested
  halide_correctness_parallel_nested
  halide_correctness_parallel_reductions
  halide_correctness_parallel_rvar
  halide_correctness_param
  halide_correctness_parameter_constraints
  halide_correctness_partial_application
  halide_correctness_partition_loops_bug
  halide_correctness_pipeline_set_jit_externs_func
  halide_correctness_print
  halide_correctness_process_some_tiles
  halide_correctness_random
  halide_correctness_realize_larger_than_two_gigs
  halide_correctness_realize_over_shifted_domain
  halide_correctness_reduction_chain
  halide_correctness_reduction_schedule
  halide_correctness_reduction_subregion
  halide_correctness_reorder_rvars
  halide_correctness_reorder_storage
  halide_correctness_reschedule
  halide_correctness_reuse_stack_alloc
  halide_correctness_round
  halide_correctness_runtime_float16_t_upcast
  halide_correctness_scatter
  halide_correctness_shared_self_references
  halide_correctness_shifted_image
  halide_correctness_side_effects
  halide_correctness_simd_op_check
  halide_correctness_simplified_away_embedded_image
  halide_correctness_skip_stages
  halide_correctness_skip_stages_external_array_functions
  halide_correctness_sliding_backwards
  halide_correctness_sliding_reduction
  halide_correctness_sliding_window
  halide_correctness_sort_exprs
  halide_correctness_specialize
  halide_correctness_specialize_to_gpu
  halide_correctness_split_fuse_rvar
  halide_correctness_split_reuse_inner_name_bug
  halide_correctness_split_store_compute
  halide_correctness_stack_allocations
  halide_correctness_stmt_to_html
  halide_correctness_storage_folding
  halide_correctness_stream_compaction
  halide_correctness_strided_load
  halide_correctness_target
  halide_correctness_tracing
  halide_correctness_tracing_bounds
  halide_correctness_tracing_stack
  halide_correctness_transitive_bounds
  halide_correctness_tuple_reduction
  halide_correctness_two_vector_args
  halide_correctness_undef
  halide_correctness_uninitialized_read
  halide_correctness_unique_func_image
  halide_correctness_unrolled_reduction
  halide_correctness_update_chunk
  halide_correctness_vector_bounds_inference
  halide_correctness_vector_cast
  halide_correctness_vector_extern
  halide_correctness_vectorized_initialization
  halide_correctness_vectorized_reduction_bug
  halide_correctness_vectorize_mixed_widths
  halide_correctness_vector_math
  halide_error_ambiguous_inline_reductions
  halide_error_bad_bound
  halide_error_bad_compute_at
  halide_error_bad_const_cast
  halide_error_bad_rvar_order
  halide_error_bad_schedule
  halide_error_bad_store_at
  halide_error_buffer_larger_than_two_gigs
  halide_error_constrain_wrong_output_buffer
  halide_error_define_after_realize
  halide_error_define_after_use
  halide_error_expanding_reduction
  halide_error_five_d_gpu_buffer
  halide_error_float16_t_implicit_downcast
  halide_error_float16_t_overflow
  halide_error_float16_t_overflow_int_conv
  halide_error_float_arg
  halide_error_impossible_constraints
  halide_error_lerp_float_weight_out_of_range
  halide_error_lerp_mismatch
  halide_error_lerp_signed_weight
  halide_error_memoize_different_compute_store
  halide_error_missing_args
  halide_error_modulo_constant_zero
  halide_error_nonexistent_update_stage
  halide_error_old_implicit_args
  halide_error_pointer_arithmetic
  halide_error_race_condition
  halide_error_realize_constantly_larger_than_two_gigs
  halide_error_reduction_bounds
  halide_error_reduction_type_mismatch
  halide_error_reused_args
  halide_error_reuse_var_in_schedule
  halide_error_thread_id_outside_block_id
  halide_error_too_many_args
  halide_error_unbounded_input
  halide_error_unbounded_output
  halide_error_undefined_rdom_dimension
  halide_error_vectorize_dynamic
  halide_error_vectorize_too_little
  halide_error_vectorize_too_much
  halide_error_wrong_type
  halide_filter
  halide_generator_aot_acquire_release
  halide_generator_aot_argvcall
  halide_generator_aot_cleanup_on_error
  halide_generator_aot_embed_image
  halide_generator_aot_error_codes
  halide_generator_aot_example
  halide_generator_aot_extended_buffer_t
  halide_generator_aot_gpu_object_lifetime
  halide_generator_aot_gpu_only
  halide_generator_aot_mandelbrot
  halide_generator_aot_matlab
  halide_generator_aot_metadata_tester
  halide_generator_aot_nested_externs
  halide_generator_aot_pyramid
  halide_generator_aot_tiled_blur
  halide_generator_aot_tiled_blur_interleaved
  halide_generator_aot_user_context
  halide_generator_aot_user_context_insanity
  halide_generator_jit_example
  halide_generator_jit_paramtest
  halide_halide_blur
  halide_HalideTraceViz
  halide_lesson_01_basics
  halide_lesson_02_input_image
  halide_lesson_03_debugging_1
  halide_lesson_04_debugging_2
  halide_lesson_05_scheduling_1
  halide_lesson_06_realizing_over_shifted_domains
  halide_lesson_07_multi_stage_pipelines
  halide_lesson_08_scheduling_2
  halide_lesson_09_update_definitions
  halide_lesson_10_aot_compilation_generate
  halide_lesson_10_aot_compilation_run
  halide_lesson_11_cross_compilation
  halide_lesson_12_using_the_gpu
  halide_lesson_13_tuples
  halide_lesson_14_types
  halide_ll_process
  halide_local_laplacian_gen
  halide_performance_block_transpose
  halide_performance_boundary_conditions
  halide_performance_clamped_vector_load
  halide_performance_const_division
  halide_performance_fast_inverse
  halide_performance_fast_pow
  halide_performance_inner_loop_parallel
  halide_performance_jit_stress
  halide_performance_matrix_multiplication
  halide_performance_memcpy
  halide_performance_packed_planar_fusion
  halide_performance_parallel_performance
  halide_performance_profiler
  halide_performance_rgb_interleaved
  halide_performance_sort
  halide_performance_vectorize
  halide_pipeline
  halide_process
  halide_renderscript_aot_copy
  halide_renderscript_aot_copy_error
  halide_renderscript_jit_copy
  halide_run_c_backend_and_native
  halide_test_internal
  halide_warning_double_vectorize
  halide_warning_float16_t_underflow
  halide_warning_hidden_pure_definition
  halide_warning_parallel_size_one
  halide_warning_vectorize_size_one
  PROPERTIES
    LABELS "Halide"
    ENVIRONMENT "HL_JIT_TARGET=opencl" "HL_TARGET=opencl")

# disabled OpenGL tests

# halide_opengl_copy_pixels
# halide_opengl_copy_to_device
# halide_opengl_copy_to_host
# halide_opengl_float_texture
# halide_opengl_internal
# halide_opengl_lut
# halide_opengl_produce
# halide_opengl_select
# halide_opengl_set_pixels
# halide_opengl_shifted_domains
# halide_opengl_special_funcs
# halide_opengl_test
# halide_opengl_varying
# halide_glsl_halide_blur
# halide_glsl_halide_ycc
# add_test(NAME halide_opengl_copy_pixels
         # COMMAND "${TS_BUILDDIR}/bin/opengl_copy_pixels")
# add_test(NAME halide_opengl_copy_to_device
         # COMMAND "${TS_BUILDDIR}/bin/opengl_copy_to_device")
# add_test(NAME halide_opengl_copy_to_host
         # COMMAND "${TS_BUILDDIR}/bin/opengl_copy_to_host")
# add_test(NAME halide_opengl_float_texture
         # COMMAND "${TS_BUILDDIR}/bin/opengl_float_texture")
# add_test(NAME halide_opengl_internal
         # COMMAND "${TS_BUILDDIR}/bin/opengl_internal")
# add_test(NAME halide_opengl_lut
         # COMMAND "${TS_BUILDDIR}/bin/opengl_lut")
# add_test(NAME halide_opengl_produce
         # COMMAND "${TS_BUILDDIR}/bin/opengl_produce")
# add_test(NAME halide_opengl_select
         # COMMAND "${TS_BUILDDIR}/bin/opengl_select")
# add_test(NAME halide_opengl_set_pixels
         # COMMAND "${TS_BUILDDIR}/bin/opengl_set_pixels")
# add_test(NAME halide_opengl_shifted_domains
         # COMMAND "${TS_BUILDDIR}/bin/opengl_shifted_domains")
# add_test(NAME halide_opengl_special_funcs
         # COMMAND "${TS_BUILDDIR}/bin/opengl_special_funcs")
# add_test(NAME halide_opengl_test
         # COMMAND "${TS_BUILDDIR}/bin/opengl_test")
# add_test(NAME halide_opengl_varying
         # COMMAND "${TS_BUILDDIR}/bin/opengl_varying")
# add_test(NAME halide_glsl_halide_blur
         # COMMAND "${TS_BUILDDIR}/bin/glsl_halide_blur")
# add_test(NAME halide_glsl_halide_ycc
         # COMMAND "${TS_BUILDDIR}/bin/glsl_halide_ycc")



endif()