1 //===- ScalarizeMaskedMemIntrin.h - Scalarize unsupported masked mem ----===//
2 //                                    intrinsics
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 // This pass replaces masked memory intrinsics - when unsupported by the target
11 // - with a chain of basic blocks, that deal with the elements one-by-one if the
12 // appropriate mask bit is set.
13 //
14 //===----------------------------------------------------------------------===//
15 //
16 #ifndef LLVM_TRANSFORMS_SCALAR_SCALARIZEMASKEDMEMINTRIN_H
17 #define LLVM_TRANSFORMS_SCALAR_SCALARIZEMASKEDMEMINTRIN_H
18 
19 #include "llvm/IR/PassManager.h"
20 
21 namespace llvm {
22 
23 struct ScalarizeMaskedMemIntrinPass
24     : public PassInfoMixin<ScalarizeMaskedMemIntrinPass> {
25   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
26 };
27 } // end namespace llvm
28 
29 #endif
30