[simple_loop]
driver: simple_loop_main.c
test: simple_loop.c

[mem_intrin]
driver: mem_intrin_main.cpp
test: mem_intrin.cpp
flags: --sz=-fmem-intrin-opt

[test_arith]
driver: test_arith_main.cpp
# Note: Originally test_arith.cpp was used to generate the bulk of the tests.
# However, the C++ integral promotion rules mean that most of the time i8 and
# i16 operations are not actually tested; instead, they are extended to i32 and
# only the i32 operation is tested.  To help fix this, the relevant parts of
# test_arith.cpp are commented out, and instead a python script auto-generates
# test_arith_ll.ll which contains the proper functionality.
#test: test_arith.cpp test_arith_frem.ll test_arith_sqrt.ll test_arith_fabs.ll
test: test_arith_ll.ll test_arith.cpp test_arith_sqrt.ll test_arith_fabs.ll

[test_bitmanip]
driver: test_bitmanip_main.cpp
test: test_bitmanip.cpp test_bitmanip_intrin.ll

[test_calling_conv]
driver: test_calling_conv_main.cpp
test: test_calling_conv.cpp

[test_cast]
driver: test_cast_main.cpp
test: test_cast.cpp test_cast_to_u1.ll test_cast_vectors.ll

[test_fcmp]
driver: test_fcmp_main.cpp
test: test_fcmp.pnacl.ll

[test_global]
driver: test_global_main.cpp
test: test_global.cpp

[test_icmp]
driver: test_icmp_main.cpp
test: test_icmp.cpp test_icmp_i1vec.ll

[test_select]
driver: test_select_main.cpp
test: test_select.ll

[test_stacksave]
driver: test_stacksave_main.c
test: test_stacksave.c

[test_strengthreduce]
driver: test_strengthreduce_main.cpp
test: test_strengthreduce.cpp
# Disable clang-side optimizations so that pnacl-sz sees suitable
# bitcode patterns.
flags: --clang-opt=0

[test_sync_atomic]
driver: test_sync_atomic_main.cpp
test: test_sync_atomic.cpp

[test_vector_ops]
driver: test_vector_ops_main.cpp
test: test_vector_ops.cpp test_vector_ops_ll.ll