blob: 0bb07cfb55ea5a4d4acb731c824536f33eb4787e [file] [log] [blame]
dan sinclair724a70f2023-03-08 21:19:13 +00001// Copyright 2023 The Tint Authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef SRC_TINT_IR_CONVERT_H_
16#define SRC_TINT_IR_CONVERT_H_
17
dan sinclair724a70f2023-03-08 21:19:13 +000018#include "src/tint/ir/call.h"
dan sinclair724a70f2023-03-08 21:19:13 +000019#include "src/tint/type/type.h"
dan sinclair12fa3032023-04-19 23:52:33 +000020#include "src/tint/utils/castable.h"
dan sinclair724a70f2023-03-08 21:19:13 +000021
22namespace tint::ir {
23
24/// A value conversion instruction in the IR.
dan sinclair12fa3032023-04-19 23:52:33 +000025class Convert : public utils::Castable<Convert, Call> {
dan sinclair724a70f2023-03-08 21:19:13 +000026 public:
27 /// Constructor
Ben Clayton4abe1b02023-06-09 18:20:18 +000028 /// @param to_type the target conversion type
29 /// @param value the value to convert
30 Convert(const type::Type* to_type, Value* value);
dan sinclair724a70f2023-03-08 21:19:13 +000031 ~Convert() override;
dan sinclair724a70f2023-03-08 21:19:13 +000032};
33
34} // namespace tint::ir
35
36#endif // SRC_TINT_IR_CONVERT_H_