|
| 1 | +// Generate .o file as SYCL device library file. |
| 2 | +// |
| 3 | +// RUN: touch %t.devicelib.cpp |
| 4 | +// RUN: %clang %t.devicelib.cpp -fsycl -fsycl-targets=spir64-unknown-unknown -c --offload-new-driver -o %t_1.devicelib.o |
| 5 | +// RUN: %clang %t.devicelib.cpp -fsycl -fsycl-targets=spir64_gen-unknown-unknown -c --offload-new-driver -o %t_2.devicelib.o |
| 6 | +// RUN: %clang %t.devicelib.cpp -fsycl -fsycl-targets=spir64_x86_64-unknown-unknown -c --offload-new-driver -o %t_3.devicelib.o |
| 7 | + |
| 8 | +/// Check llvm-spirv extensions that are set |
| 9 | + |
| 10 | +// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \ |
| 11 | +// RUN: -fsycl-targets=spir64-unknown-unknown -c %s -o %t_1.o |
| 12 | +// RUN: clang-linker-wrapper -sycl-device-libraries=%t_1.devicelib.o \ |
| 13 | +// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \ |
| 14 | +// RUN: "--" "-o" "a.out" %t_1.o --dry-run 2>&1 \ |
| 15 | +// RUN: | FileCheck -check-prefix=CHECK-DEFAULT %s |
| 16 | +// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \ |
| 17 | +// RUN: -fsycl-targets=spir64_gen-unknown-unknown -c %s -o %t_2.o |
| 18 | +// RUN: clang-linker-wrapper -sycl-device-libraries=%t_2.devicelib.o \ |
| 19 | +// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \ |
| 20 | +// RUN: "--" "-o" "a.out" %t_2.o --dry-run 2>&1 \ |
| 21 | +// RUN: | FileCheck -check-prefix=CHECK-DEFAULT %s |
| 22 | +// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \ |
| 23 | +// RUN: -fsycl-targets=spir64_x86_64-unknown-unknown -c %s -o %t_3.o |
| 24 | +// RUN: clang-linker-wrapper -sycl-device-libraries=%t_3.devicelib.o \ |
| 25 | +// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \ |
| 26 | +// RUN: "--" "-o" "a.out" %t_3.o --dry-run 2>&1 \ |
| 27 | +// RUN: | FileCheck -check-prefix=CHECK-CPU %s |
| 28 | + |
| 29 | +// CHECK-DEFAULT: llvm-spirv{{.*}}-spirv-ext=-all |
| 30 | +// CHECK-DEFAULT-SAME:,+SPV_EXT_shader_atomic_float_add |
| 31 | +// CHECK-DEFAULT-SAME:,+SPV_EXT_shader_atomic_float_min_max |
| 32 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_no_integer_wrap_decoration,+SPV_KHR_float_controls |
| 33 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_expect_assume,+SPV_KHR_linkonce_odr |
| 34 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_subgroups,+SPV_INTEL_media_block_io |
| 35 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_device_side_avc_motion_estimation |
| 36 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_loop_controls |
| 37 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_unstructured_loop_controls,+SPV_INTEL_fpga_reg |
| 38 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_blocking_pipes,+SPV_INTEL_function_pointers |
| 39 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_kernel_attributes,+SPV_INTEL_io_pipes |
| 40 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_inline_assembly,+SPV_INTEL_arbitrary_precision_integers |
| 41 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_float_controls2 |
| 42 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_vector_compute,+SPV_INTEL_fast_composite |
| 43 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_arbitrary_precision_fixed_point |
| 44 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_arbitrary_precision_floating_point |
| 45 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_variable_length_array,+SPV_INTEL_fp_fast_math_mode |
| 46 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_long_constant_composite |
| 47 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_arithmetic_fence |
| 48 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_cache_controls |
| 49 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_buffer_location |
| 50 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_argument_interfaces |
| 51 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_invocation_pipelining_attributes |
| 52 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_latency_control |
| 53 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_shader_clock |
| 54 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_bindless_images |
| 55 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_task_sequence |
| 56 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_token_type |
| 57 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_bfloat16_conversion |
| 58 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_joint_matrix |
| 59 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_hw_thread_queries |
| 60 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_uniform_group_instructions |
| 61 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_masked_gather_scatter |
| 62 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_tensor_float32_conversion |
| 63 | +// CHECK-DEFAULT-SAME:,+SPV_INTEL_optnone |
| 64 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_non_semantic_info |
| 65 | +// CHECK-DEFAULT-SAME:,+SPV_KHR_cooperative_matrix |
| 66 | +// CHECK-DEFAULT-SAME:,+SPV_EXT_shader_atomic_float16_add |
| 67 | + |
| 68 | +// CHECK-CPU: llvm-spirv{{.*}}-spirv-ext=-all |
| 69 | +// CHECK-CPU-SAME:,+SPV_EXT_shader_atomic_float_add |
| 70 | +// CHECK-CPU-SAME:,+SPV_EXT_shader_atomic_float_min_max |
| 71 | +// CHECK-CPU-SAME:,+SPV_KHR_no_integer_wrap_decoration,+SPV_KHR_float_controls |
| 72 | +// CHECK-CPU-SAME:,+SPV_KHR_expect_assume,+SPV_KHR_linkonce_odr |
| 73 | +// CHECK-CPU-SAME:,+SPV_INTEL_subgroups,+SPV_INTEL_media_block_io |
| 74 | +// CHECK-CPU-SAME:,+SPV_INTEL_device_side_avc_motion_estimation |
| 75 | +// CHECK-CPU-SAME:,+SPV_INTEL_fpga_loop_controls |
| 76 | +// CHECK-CPU-SAME:,+SPV_INTEL_unstructured_loop_controls,+SPV_INTEL_fpga_reg |
| 77 | +// CHECK-CPU-SAME:,+SPV_INTEL_blocking_pipes,+SPV_INTEL_function_pointers |
| 78 | +// CHECK-CPU-SAME:,+SPV_INTEL_kernel_attributes,+SPV_INTEL_io_pipes |
| 79 | +// CHECK-CPU-SAME:,+SPV_INTEL_inline_assembly,+SPV_INTEL_arbitrary_precision_integers |
| 80 | +// CHECK-CPU-SAME:,+SPV_INTEL_float_controls2 |
| 81 | +// CHECK-CPU-SAME:,+SPV_INTEL_vector_compute,+SPV_INTEL_fast_composite |
| 82 | +// CHECK-CPU-SAME:,+SPV_INTEL_arbitrary_precision_fixed_point |
| 83 | +// CHECK-CPU-SAME:,+SPV_INTEL_arbitrary_precision_floating_point |
| 84 | +// CHECK-CPU-SAME:,+SPV_INTEL_variable_length_array,+SPV_INTEL_fp_fast_math_mode |
| 85 | +// CHECK-CPU-SAME:,+SPV_INTEL_long_constant_composite |
| 86 | +// CHECK-CPU-SAME:,+SPV_INTEL_arithmetic_fence |
| 87 | +// CHECK-CPU-SAME:,+SPV_INTEL_cache_controls |
| 88 | +// CHECK-CPU-SAME:,+SPV_INTEL_fpga_buffer_location |
| 89 | +// CHECK-CPU-SAME:,+SPV_INTEL_fpga_argument_interfaces |
| 90 | +// CHECK-CPU-SAME:,+SPV_INTEL_fpga_invocation_pipelining_attributes |
| 91 | +// CHECK-CPU-SAME:,+SPV_INTEL_fpga_latency_control |
| 92 | +// CHECK-CPU-SAME:,+SPV_INTEL_task_sequence |
| 93 | +// CHECK-CPU-SAME:,+SPV_INTEL_token_type |
| 94 | +// CHECK-CPU-SAME:,+SPV_INTEL_bfloat16_conversion |
| 95 | +// CHECK-CPU-SAME:,+SPV_INTEL_joint_matrix |
| 96 | +// CHECK-CPU-SAME:,+SPV_INTEL_hw_thread_queries |
| 97 | +// CHECK-CPU-SAME:,+SPV_KHR_uniform_group_instructions |
| 98 | +// CHECK-CPU-SAME:,+SPV_INTEL_masked_gather_scatter |
| 99 | +// CHECK-CPU-SAME:,+SPV_INTEL_tensor_float32_conversion |
| 100 | +// CHECK-CPU-SAME:,+SPV_INTEL_optnone |
| 101 | +// CHECK-CPU-SAME:,+SPV_KHR_non_semantic_info |
| 102 | +// CHECK-CPU-SAME:,+SPV_KHR_cooperative_matrix |
| 103 | +// CHECK-CPU-SAME:,+SPV_INTEL_fp_max_error |
0 commit comments