Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:10

0001 //===- Uniformity.h --------------------------------------*- C++ -*--------===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_ADT_UNIFORMITY_H
0010 #define LLVM_ADT_UNIFORMITY_H
0011 
0012 namespace llvm {
0013 
0014 /// Enum describing how instructions behave with respect to uniformity and
0015 /// divergence, to answer the question: if the same instruction is executed by
0016 /// two threads in a convergent set of threads, will its result value(s) be
0017 /// uniform, i.e. the same on both threads?
0018 enum class InstructionUniformity {
0019   /// The result values are uniform if and only if all operands are uniform.
0020   Default,
0021 
0022   /// The result values are always uniform.
0023   AlwaysUniform,
0024 
0025   /// The result values can never be assumed to be uniform.
0026   NeverUniform
0027 };
0028 
0029 } // namespace llvm
0030 #endif // LLVM_ADT_UNIFORMITY_H