/* MACHINE GENERATED - do not edit this file */

_DEVICE_QUALIFIER void __barrier_invariant_0(bool expr
);
_DEVICE_QUALIFIER void __barrier_invariant_1(bool expr
  , size_t inst_expr_0
);
_DEVICE_QUALIFIER void __barrier_invariant_2(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
);
_DEVICE_QUALIFIER void __barrier_invariant_3(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
);
_DEVICE_QUALIFIER void __barrier_invariant_4(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
);
_DEVICE_QUALIFIER void __barrier_invariant_5(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
);
_DEVICE_QUALIFIER void __barrier_invariant_6(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
);
_DEVICE_QUALIFIER void __barrier_invariant_7(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
);
_DEVICE_QUALIFIER void __barrier_invariant_8(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
);
_DEVICE_QUALIFIER void __barrier_invariant_9(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
);
_DEVICE_QUALIFIER void __barrier_invariant_10(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
);
_DEVICE_QUALIFIER void __barrier_invariant_11(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
);
_DEVICE_QUALIFIER void __barrier_invariant_12(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
);
_DEVICE_QUALIFIER void __barrier_invariant_13(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
);
_DEVICE_QUALIFIER void __barrier_invariant_14(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
);
_DEVICE_QUALIFIER void __barrier_invariant_15(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
);
_DEVICE_QUALIFIER void __barrier_invariant_16(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
  , size_t inst_expr_15
);
_DEVICE_QUALIFIER void __barrier_invariant_17(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
  , size_t inst_expr_15
  , size_t inst_expr_16
);
_DEVICE_QUALIFIER void __barrier_invariant_18(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
  , size_t inst_expr_15
  , size_t inst_expr_16
  , size_t inst_expr_17
);
_DEVICE_QUALIFIER void __barrier_invariant_19(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
  , size_t inst_expr_15
  , size_t inst_expr_16
  , size_t inst_expr_17
  , size_t inst_expr_18
);
_DEVICE_QUALIFIER void __barrier_invariant_20(bool expr
  , size_t inst_expr_0
  , size_t inst_expr_1
  , size_t inst_expr_2
  , size_t inst_expr_3
  , size_t inst_expr_4
  , size_t inst_expr_5
  , size_t inst_expr_6
  , size_t inst_expr_7
  , size_t inst_expr_8
  , size_t inst_expr_9
  , size_t inst_expr_10
  , size_t inst_expr_11
  , size_t inst_expr_12
  , size_t inst_expr_13
  , size_t inst_expr_14
  , size_t inst_expr_15
  , size_t inst_expr_16
  , size_t inst_expr_17
  , size_t inst_expr_18
  , size_t inst_expr_19
);
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_0(X) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_0(X) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_0(X), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_1(X, I0) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_1(X, I0) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_1(X, I0), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_2(X, I0, I1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_2(X, I0, I1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_2(X, I0, I1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_3(X, I0, I1, I2) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_3(X, I0, I1, I2) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_3(X, I0, I1, I2), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_4(X, I0, I1, I2, I3) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_4(X, I0, I1, I2, I3) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_4(X, I0, I1, I2, I3), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_5(X, I0, I1, I2, I3, I4) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_5(X, I0, I1, I2, I3, I4) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_5(X, I0, I1, I2, I3, I4), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_6(X, I0, I1, I2, I3, I4, I5) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_6(X, I0, I1, I2, I3, I4, I5) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_6(X, I0, I1, I2, I3, I4, I5), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_7(X, I0, I1, I2, I3, I4, I5, I6) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_7(X, I0, I1, I2, I3, I4, I5, I6) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_7(X, I0, I1, I2, I3, I4, I5, I6), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_8(X, I0, I1, I2, I3, I4, I5, I6, I7) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_8(X, I0, I1, I2, I3, I4, I5, I6, I7) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_8(X, I0, I1, I2, I3, I4, I5, I6, I7), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_9(X, I0, I1, I2, I3, I4, I5, I6, I7, I8) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_9(X, I0, I1, I2, I3, I4, I5, I6, I7, I8) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_9(X, I0, I1, I2, I3, I4, I5, I6, I7, I8), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_10(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_10(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_10(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_11(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_11(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_11(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_12(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_12(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_12(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_13(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_13(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_13(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_14(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_14(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_14(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_15(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_15(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_15(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_16(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_16(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_16(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_17(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_17(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_17(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_18(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_18(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_18(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_19(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_19(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_19(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_20(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_20(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_20(X, I0, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19), \
    __non_temporal_loads_end()
#endif
void __barrier_invariant_binary_0(bool expr
);
void __barrier_invariant_binary_1(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
);
void __barrier_invariant_binary_2(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
);
void __barrier_invariant_binary_3(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
);
void __barrier_invariant_binary_4(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
);
void __barrier_invariant_binary_5(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
);
void __barrier_invariant_binary_6(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
);
void __barrier_invariant_binary_7(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
);
void __barrier_invariant_binary_8(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
);
void __barrier_invariant_binary_9(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
);
void __barrier_invariant_binary_10(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
);
void __barrier_invariant_binary_11(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
);
void __barrier_invariant_binary_12(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
);
void __barrier_invariant_binary_13(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
);
void __barrier_invariant_binary_14(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
);
void __barrier_invariant_binary_15(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
);
void __barrier_invariant_binary_16(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
  , size_t inst_expr_15_0, size_t inst_expr_15_1
);
void __barrier_invariant_binary_17(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
  , size_t inst_expr_15_0, size_t inst_expr_15_1
  , size_t inst_expr_16_0, size_t inst_expr_16_1
);
void __barrier_invariant_binary_18(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
  , size_t inst_expr_15_0, size_t inst_expr_15_1
  , size_t inst_expr_16_0, size_t inst_expr_16_1
  , size_t inst_expr_17_0, size_t inst_expr_17_1
);
void __barrier_invariant_binary_19(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
  , size_t inst_expr_15_0, size_t inst_expr_15_1
  , size_t inst_expr_16_0, size_t inst_expr_16_1
  , size_t inst_expr_17_0, size_t inst_expr_17_1
  , size_t inst_expr_18_0, size_t inst_expr_18_1
);
void __barrier_invariant_binary_20(bool expr
  , size_t inst_expr_0_0, size_t inst_expr_0_1
  , size_t inst_expr_1_0, size_t inst_expr_1_1
  , size_t inst_expr_2_0, size_t inst_expr_2_1
  , size_t inst_expr_3_0, size_t inst_expr_3_1
  , size_t inst_expr_4_0, size_t inst_expr_4_1
  , size_t inst_expr_5_0, size_t inst_expr_5_1
  , size_t inst_expr_6_0, size_t inst_expr_6_1
  , size_t inst_expr_7_0, size_t inst_expr_7_1
  , size_t inst_expr_8_0, size_t inst_expr_8_1
  , size_t inst_expr_9_0, size_t inst_expr_9_1
  , size_t inst_expr_10_0, size_t inst_expr_10_1
  , size_t inst_expr_11_0, size_t inst_expr_11_1
  , size_t inst_expr_12_0, size_t inst_expr_12_1
  , size_t inst_expr_13_0, size_t inst_expr_13_1
  , size_t inst_expr_14_0, size_t inst_expr_14_1
  , size_t inst_expr_15_0, size_t inst_expr_15_1
  , size_t inst_expr_16_0, size_t inst_expr_16_1
  , size_t inst_expr_17_0, size_t inst_expr_17_1
  , size_t inst_expr_18_0, size_t inst_expr_18_1
  , size_t inst_expr_19_0, size_t inst_expr_19_1
);
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_0(X) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_0(X) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_0(X), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_1(X, I0_0, I0_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_1(X, I0_0, I0_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_1(X, I0_0, I0_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_2(X, I0_0, I0_1, I1_0, I1_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_2(X, I0_0, I0_1, I1_0, I1_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_2(X, I0_0, I0_1, I1_0, I1_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_3(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_3(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_3(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_4(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_4(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_4(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_5(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_5(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_5(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_6(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_6(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_6(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_7(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_7(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_7(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_8(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_8(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_8(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_9(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_9(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_9(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_10(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_10(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_10(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_11(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_11(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_11(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_12(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_12(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_12(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_13(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_13(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_13(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_14(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_14(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_14(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_15(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_15(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_15(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_16(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_16(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_16(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_17(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_17(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_17(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_18(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_18(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_18(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_19(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_19(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_19(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1), \
    __non_temporal_loads_end()
#endif
#if !defined(__1D_WORK_GROUP) && !defined(__1D_THREAD_BLOCK)
#define __barrier_invariant_binary_20(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1, I19_0, I19_1) !!! Barrier invariants currently only supported for 1D thread groups !!!
#else
#define __barrier_invariant_binary_20(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1, I19_0, I19_1) \
    __non_temporal_loads_begin(), \
    __barrier_invariant_binary_20(X, I0_0, I0_1, I1_0, I1_1, I2_0, I2_1, I3_0, I3_1, I4_0, I4_1, I5_0, I5_1, I6_0, I6_1, I7_0, I7_1, I8_0, I8_1, I9_0, I9_1, I10_0, I10_1, I11_0, I11_1, I12_0, I12_1, I13_0, I13_1, I14_0, I14_1, I15_0, I15_1, I16_0, I16_1, I17_0, I17_1, I18_0, I18_1, I19_0, I19_1), \
    __non_temporal_loads_end()
#endif
