DPC++ Runtime
Runtime libraries for oneAPI DPC++
pipe_properties.hpp
Go to the documentation of this file.
1 //==----- pipe_properties.hpp - SYCL properties associated with data flow pipe
2 //---==//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #pragma once
11 
12 #include <sycl/ext/oneapi/properties/property.hpp> // for PropKind
13 #include <sycl/ext/oneapi/properties/property_value.hpp> // for property_value
14 
15 #include <cstdint> // for uint16_t
16 #include <type_traits> // for true_type
17 
18 namespace sycl {
19 inline namespace _V1 {
20 namespace ext::intel::experimental {
21 
24  oneapi::experimental::detail::PropKind::ReadyLatency> {
25  template <int Latency>
27  ready_latency_key, std::integral_constant<int, Latency>>;
28 };
29 
32  oneapi::experimental::detail::PropKind::BitsPerSymbol> {
33  template <int Bits>
34  using value_t =
36  std::integral_constant<int, Bits>>;
37 };
38 
40  oneapi::experimental::detail::PropKind::UsesValid> {
41  template <bool Valid>
42  using value_t =
44  std::bool_constant<Valid>>;
45 };
46 
49  oneapi::experimental::detail::PropKind::FirstSymbolInHigherOrderBit> {
50  template <bool HighOrder>
51  using value_t =
53  std::bool_constant<HighOrder>>;
54 };
55 
56 enum class protocol_name : std::uint16_t {
57  avalon_streaming = 0,
59  avalon_mm = 2,
61 };
62 
65  oneapi::experimental::detail::PropKind::PipeProtocol> {
66  template <protocol_name Protocol>
68  protocol_key, std::integral_constant<protocol_name, Protocol>>;
69 };
70 
71 template <int Latency>
73 
74 template <int Bits>
76 
77 template <bool Valid>
81 
82 template <bool HighOrder>
89 
90 template <protocol_name Protocol>
94 inline constexpr protocol_key::value_t<
101 
102 } // namespace ext::intel::experimental
103 } // namespace _V1
104 } // namespace sycl
constexpr protocol_key::value_t< protocol_name::avalon_streaming > protocol_avalon_streaming
constexpr protocol_key::value_t< protocol_name::avalon_mm > protocol_avalon_mm
constexpr first_symbol_in_high_order_bits_key::value_t< true > first_symbol_in_high_order_bits_on
constexpr uses_valid_key::value_t< false > uses_valid_off
constexpr bits_per_symbol_key::value_t< Bits > bits_per_symbol
constexpr uses_valid_key::value_t< Valid > uses_valid
constexpr first_symbol_in_high_order_bits_key::value_t< HighOrder > first_symbol_in_high_order_bits
constexpr protocol_key::value_t< protocol_name::avalon_streaming_uses_ready > protocol_avalon_streaming_uses_ready
constexpr ready_latency_key::value_t< Latency > ready_latency
constexpr first_symbol_in_high_order_bits_key::value_t< false > first_symbol_in_high_order_bits_off
constexpr uses_valid_key::value_t< true > uses_valid_on
constexpr protocol_key::value_t< protocol_name::avalon_mm_uses_ready > protocol_avalon_mm_uses_ready
constexpr protocol_key::value_t< Protocol > protocol
Definition: access.hpp:18