1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef BERBERIS_HEAVY_OPTIMIZER_RISCV64_SIMD_REGISTER_H_
18 #define BERBERIS_HEAVY_OPTIMIZER_RISCV64_SIMD_REGISTER_H_
19 
20 #include "berberis/backend/common/machine_ir.h"
21 
22 namespace berberis {
23 
24 // Simple wrapper around MachineReg
25 class SimdReg {
26  public:
27   constexpr SimdReg() = default;
28   constexpr SimdReg(const SimdReg&) = default;
29   constexpr SimdReg& operator=(const SimdReg&) = default;
30   constexpr SimdReg(SimdReg&&) = default;
31   constexpr SimdReg& operator=(SimdReg&&) = default;
SimdReg(MachineReg reg)32   explicit constexpr SimdReg(MachineReg reg) : machine_reg_{reg} {}
33 
machine_reg()34   [[nodiscard]] MachineReg constexpr machine_reg() const { return machine_reg_; }
35 
36  private:
37   MachineReg machine_reg_;
38 };
39 
40 }  // namespace berberis
41 
42 #endif  // BERBERIS_HEAVY_OPTIMIZER_RISCV64_SIMD_REGISTER_H_
43