Opened 6 weeks ago

Last modified 6 weeks ago

#19003 assigned defect

isolde sim start: OpenMMException: Error compiling kernel

Reported by: ash@… Owned by: Tristan Croll
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description (last modified by Eric Pettersen)

The following bug report has been submitted:
Platform:        macOS-26.0-arm64-arm-64bit
ChimeraX Version: 1.8 (2024-06-10 23:15:52 UTC)
Description
(Describe the actions that caused this problem to occur here)

Log:
UCSF ChimeraX version: 1.8 (2024-06-10)  
© 2016-2024 Regents of the University of California. All rights reserved.  

> open /Users/grm784/Downloads/isolde-session.cxs

restore_snapshot for "NXmapHandler" returned None  

restore_snapshot for "FastVolumeSurface" returned None  

Exception ignored in: <function Drawing.__del__ at 0x104df6ca0>  
Traceback (most recent call last):  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/graphics/drawing.py", line 1215, in __del__  
if not self.was_deleted:  
^^^^^^^^^^^^^^^^  
AttributeError: 'MDFFMgr' object has no attribute 'was_deleted'  

restore_snapshot for "MDFFMgr" returned None  

Log from Tue Sep 23 10:29:55 2025 Startup Messages  
---  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 1.8 (2024-06-10)  
© 2016-2024 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open "/Users/sqv821/Desktop/PhD/Writing/Refinement/Newer SNAT2
> 2.75Å/2025_09_18_SNAT2_in_J2872_coot-coot-0.pdb"

Chain information for 2025_09_18_SNAT2_in_J2872_coot-coot-0.pdb #1  
---  
Chain | Description  
A | No description available  
  

> open "/Users/sqv821/Desktop/PhD/Writing/Refinement/Newer SNAT2
> 2.75Å/cryosparc_P179_J2807_003_volume_map.mrc"

Opened cryosparc_P179_J2807_003_volume_map.mrc as #2, grid size 300,300,300,
pixel 0.728, shown at level 0.0365, step 2, values float32  

> clipper associate #2 toModel #1

Opened cryosparc_P179_J2807_003_volume_map.mrc as #1.1.1.1, grid size
300,300,300, pixel 0.728, shown at level 0.161, step 1, values float32  
Chain information for 2025_09_18_SNAT2_in_J2872_coot-coot-0.pdb  
---  
Chain | Description  
1.2/A | No description available  
  

> ui mousemode right zoom

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

> ui mousemode right zoom

> volume #1.1.1.1 level 0.1869

> volume #1.1.1.1 level 0.1608

> addh

Summary of feedback from adding hydrogens to 2025_09_18_SNAT2_in_J2872_coot-
coot-0.pdb #1.2  
---  
notes | No usable SEQRES records for 2025_09_18_SNAT2_in_J2872_coot-coot-0.pdb (#1.2) chain A; guessing termini instead  
Chain-initial residues that are actual N termini: /A GLU 65  
Chain-initial residues that are not actual N termini: /A SER 280  
Chain-final residues that are actual C termini: /A HIS 506  
Chain-final residues that are not actual C termini: /A VAL 243  
359 hydrogen bonds  
Adding 'H' to /A SER 280  
3324 hydrogens added  
  

> isolde restrain ligands #1

[Repeated 1 time(s)]

> isolde start

> set selectionWidth 4

ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 31 residues in model #1.2 to IUPAC-IUB
standards.  
Cached rota8000-val data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-leu data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-ile data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-pro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-phe data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-tyr data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-trp data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-ser data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-thr data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-cys data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-met data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-lys data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-his data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-arg data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-asp data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-asn data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-gln data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-glu data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-cispro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-transpro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-gly-sym data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-prepro-noGP data not found. Regenerating from text file. This
is normal if running ISOLDE for the first time  
Cached rama8000-ileval-nopreP data not found. Regenerating from text file.
This is normal if running ISOLDE for the first time  
Cached rama8000-general-noGPIVpreP data not found. Regenerating from text
file. This is normal if running ISOLDE for the first time  

Forcefield cache not found or out of date. Regenerating from ffXML files. This
is normal if running ISOLDE for the first time, or after upgrading OpenMM.  

Done loading forcefield  

> isolde set simFidelityMode Medium/Medium

ISOLDE: setting sim fidelity mode to Medium/Medium  
nonbonded_cutoff_distance = 0.900000  
use_gbsa = True  
gbsa_cutoff = 1.100000  

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

> isolde sim start /A

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 13 residues in model #1.2 to IUPAC-IUB
standards.  
ISOLDE: stopped sim  

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

> ui tool show "Ramachandran Plot"

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

[Repeated 1 time(s)]

> isolde stepto next

[Repeated 2 time(s)]

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

> volume #1.1.1.1 level 0.02858

> isolde stepto next

[Repeated 1 time(s)]

> isolde cisflip /A:464

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde stepto prev

> isolde stepto next

> isolde cisflip /A:463

ISOLDE: started sim  

> isolde sim stop discardTo start

Sim termination reason: None  
reverting to start  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

> isolde sim start #!1.2/A:464

ISOLDE: started sim  

> isolde pepflip /A:464

[Repeated 1 time(s)]Unable to flip peptide bond after 50 rounds. Giving up.  

> isolde cisflip /A:464

[Repeated 2 time(s)]

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> volume #1.1.1.1 level 0.02377

> isolde pepflip /A:464

ISOLDE: started sim  

> isolde sim stop discardTo start

Sim termination reason: None  
reverting to start  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde pepflip /A:351

ISOLDE: started sim  

> isolde pepflip /A:351

[Repeated 1 time(s)]

> isolde cisflip /A:351

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 2 residues in model #1.2 to IUPAC-IUB
standards.  
ISOLDE: stopped sim  

> isolde pepflip #!1.2/A:444

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde cisflip /A:444

ISOLDE: started sim  

> isolde sim stop discardTo start

Sim termination reason: None  
reverting to start  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde stepto next

> isolde pepflip /A:444

ISOLDE: started sim  

> isolde cisflip /A:444

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde pepflip /A:215

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 2 residues in model #1.2 to IUPAC-IUB
standards.  
ISOLDE: stopped sim  

> isolde pepflip #!1.2/A:462

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde cisflip /A:461

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde cisflip /A:461

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde pepflip /A:461

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

> isolde pepflip /A:462

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: stopped sim  

The cached device pixel ratio value was stale on window expose. Please file a
QTBUG which explains how to reproduce.  

[Repeated 1 time(s)]

> isolde cisflip #1.2/A:351

ISOLDE: started sim  

> isolde cisflip #1.2/A:351

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 1 residues in model #1.2 to IUPAC-IUB
standards.  
ISOLDE: stopped sim  

> isolde cisflip #1.2/A:351

ISOLDE: started sim  

> isolde sim stop

Sim termination reason: None  
ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side
chains...  
ISOLDE: Corrected atom nomenclature of 3 residues in model #1.2 to IUPAC-IUB
standards.  
ISOLDE: stopped sim  

> save /Users/sqv821/Desktop/PhD/Writing/isolde-session.cxs

Taking snapshot of stepper: 2025_09_18_SNAT2_in_J2872_coot-coot-0.pdb  

——— End of log from Tue Sep 23 10:29:55 2025 ———

opened ChimeraX session  

> isolde start

> set selectionWidth 4

Done loading forcefield  

> isolde set simFidelityMode Medium/Medium

ISOLDE: setting sim fidelity mode to Medium/Medium  
nonbonded_cutoff_distance = 0.900000  
use_gbsa = True  
gbsa_cutoff = 1.100000  

> isolde sim start /A

Traceback (most recent call last):  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/toolbar/tool.py", line 205, in callback  
bundle_info.run_provider(session, name, session.toolbar,
display_name=display_name)  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/toolshed/info.py", line 397, in run_provider  
return api._api_caller.run_provider(api, session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/toolshed/__init__.py", line 1306, in run_provider  
return cls._get_func(api, "run_provider")(session, name, mgr, **kw)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/__init__.py", line 184, in run_provider  
toolbar_command(session, name)  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/toolbar.py", line 21, in toolbar_command  
run(session, f'isolde sim start {_current_residue_sel_string(session)}')  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/commands/run.py", line 49, in run  
results = command.run(text, log=log, return_json=return_json)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/commands/cli.py", line 3213, in run  
result = ci.function(session, **kw_args)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/cmd/cmd.py", line 122, in isolde_sim  
isolde.start_sim()  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/isolde.py", line 896, in start_sim  
sm.start_sim()  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 401, in start_sim  
sh.start_sim()  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1432, in start_sim  
self._prepare_sim()  
File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1377, in
_prepare_sim  
s = self._simulation = app.Simulation(self.topology, self._system,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/openmm/app/simulation.py", line 103, in __init__  
self.context = mm.Context(self.system, self.integrator, platform,
platformProperties)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/openmm/openmm.py", line 2469, in __init__  
_openmm.Context_swiginit(self, _openmm.new_Context(*args))  
^^^^^^^^^^^^^^^^^^^^^^^^^^  
openmm.OpenMMException: Error compiling kernel: program_source:279:1: error:
illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:279:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:279:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:279:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:279:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:279:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:280:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:281:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:282:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(min)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:283:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(max)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:285:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:286:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_inclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:287:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(prefix_exclusive_product)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:288:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(and)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:288:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(and)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:288:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(and)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:288:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(and)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:289:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(or)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:289:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(or)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:289:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(or)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:289:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(or)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:290:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:290:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:290:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:290:1: error: illegal string literal in 'asm'  
DECLARE_I_REDUCTION_BASE(xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:292:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(broadcast)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:263:44: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:217:40: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
#define DECLARE_REDUCTION_BASE(METAL_OP) \  
^  
program_source:264:43: note: expanded from macro '\  
DECLARE_I_REDUCTION_BASE'  
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \  
^  
program_source:218:51: note: expanded from macro '\  
EXPOSE_FUNCTION_I_ARGS_1'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:267:44: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:293:1: error: illegal string literal in 'asm'  
DECLARE_REDUCTION_BASE(broadcast_first)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'  
DECLARE_I_REDUCTION_BASE(METAL_OP) \  
^  
program_source:268:43: note: expanded from macro '\  
DECLARE_F_REDUCTION_BASE'  
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \  
^  
program_source:221:40: note: expanded from macro '\  
EXPOSE_FUNCTION_F_ARGS_1'  
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \  
^  
program_source:164:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:295:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:296:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_xor)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:297:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:298:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: illegal string literal in 'asm'  
EXPOSE_FUNCTION_I_ARGS_3(ctz)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \  
^  
program_source:172:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: implicit declaration of function '___metal_ctz'
is invalid in OpenCL  
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \  
^  
program_source:175:10: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
return ___metal_##EXPR(x, false); \  
^  
<scratch space>:12:1: note: expanded from here  
___metal_ctz  
^  
program_source:302:1: error: illegal string literal in 'asm'  
EXPOSE_FUNCTION_I_ARGS_3(ctz)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \  
^  
program_source:172:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: implicit declaration of function '___metal_ctz'
is invalid in OpenCL  
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \  
^  
program_source:175:10: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
return ___metal_##EXPR(x, false); \  
^  
<scratch space>:16:1: note: expanded from here  
___metal_ctz  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:17:1: note: expanded from here  
simd_sum  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:17:1: note: expanded from here  
simd_sum  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:19:1: note: expanded from here  
simd_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:21:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:21:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:23:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:25:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:25:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:27:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(min, reduce_min)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:29:1: note: expanded from here  
simd_min  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:29:1: note: expanded from here  
simd_min  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:31:1: note: expanded from here  
simd_min  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(max, reduce_max)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:33:1: note: expanded from here  
simd_max  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:33:1: note: expanded from here  
simd_max  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:35:1: note: expanded from here  
simd_max  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:327:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
<scratch space>:45:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:327:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
[deleted to fit within ticket limits]

^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:299:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
#define DECLARE_SHUFFLE_BASE(METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:224:38: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:225:51: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:300:1: error: illegal string literal in 'asm'  
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'  
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \  
^  
program_source:226:52: note: expanded from macro '\  
EXPOSE_FUNCTION_ARGS_2'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \  
^  
program_source:168:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: illegal string literal in 'asm'  
EXPOSE_FUNCTION_I_ARGS_3(ctz)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \  
^  
program_source:172:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: implicit declaration of function '___metal_ctz'
is invalid in OpenCL  
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \  
^  
program_source:175:10: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
return ___metal_##EXPR(x, false); \  
^  
:12:1: note: expanded from here  
___metal_ctz  
^  
program_source:302:1: error: illegal string literal in 'asm'  
EXPOSE_FUNCTION_I_ARGS_3(ctz)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \  
^  
program_source:172:9: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
__asm("air." #EXPR "." #AIR_TYPE); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:302:1: error: implicit declaration of function '___metal_ctz'
is invalid in OpenCL  
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \  
^  
program_source:175:10: note: expanded from macro '\  
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'  
return ___metal_##EXPR(x, false); \  
^  
:16:1: note: expanded from here  
___metal_ctz  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:17:1: note: expanded from here  
simd_sum  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:17:1: note: expanded from here  
simd_sum  
^  
program_source:317:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:19:1: note: expanded from here  
simd_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:21:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:21:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:318:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:23:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:25:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:25:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:319:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:27:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(min, reduce_min)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:29:1: note: expanded from here  
simd_min  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:29:1: note: expanded from here  
simd_min  
^  
program_source:320:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:31:1: note: expanded from here  
simd_min  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(max, reduce_max)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:33:1: note: expanded from here  
simd_max  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:33:1: note: expanded from here  
simd_max  
^  
program_source:321:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:35:1: note: expanded from here  
simd_max  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:323:1: error: implicit declaration of function 'simd_shuffle'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:37:1: note: expanded from here  
simd_shuffle  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:324:1: error: implicit declaration of function
'simd_shuffle_xor' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:39:1: note: expanded from here  
simd_shuffle_xor  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:325:1: error: implicit declaration of function
'simd_shuffle_up' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:41:1: note: expanded from here  
simd_shuffle_up  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:326:1: error: implicit declaration of function
'simd_shuffle_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:43:1: note: expanded from here  
simd_shuffle_down  
^  
program_source:327:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:45:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:327:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:45:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:327:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:45:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:329:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
DECLARE_SHUFFLE_UNIFORM(broadcast, broadcast)  
^  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:47:1: note: expanded from here  
simd_broadcast  
^  
program_source:329:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:47:1: note: expanded from here  
simd_broadcast  
^  
program_source:329:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:47:1: note: expanded from here  
simd_broadcast  
^  
program_source:330:1: error: implicit declaration of function
'simd_broadcast_first' is invalid in OpenCL  
DECLARE_REDUCTION_UNIFORM(broadcast_first, broadcast_first)  
^  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:49:1: note: expanded from here  
simd_broadcast_first  
^  
program_source:330:1: error: implicit declaration of function
'simd_broadcast_first' is invalid in OpenCL  
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:305:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:49:1: note: expanded from here  
simd_broadcast_first  
^  
program_source:330:1: error: implicit declaration of function
'simd_broadcast_first' is invalid in OpenCL  
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'  
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:308:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \  
^  
:51:1: note: expanded from here  
simd_broadcast_first  
^  
program_source:345:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(sum, reduce_add)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:53:1: note: expanded from here  
simd_sum  
^  
program_source:345:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:53:1: note: expanded from here  
simd_sum  
^  
program_source:345:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:55:1: note: expanded from here  
simd_sum  
^  
program_source:346:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:57:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:346:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:57:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:346:1: error: implicit declaration of function
'simd_prefix_inclusive_sum' is invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:59:1: note: expanded from here  
simd_prefix_inclusive_sum  
^  
program_source:347:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:61:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:347:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:61:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:347:1: error: implicit declaration of function
'simd_prefix_exclusive_sum' is invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:63:1: note: expanded from here  
simd_prefix_exclusive_sum  
^  
program_source:348:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(min, reduce_min)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:65:1: note: expanded from here  
simd_min  
^  
program_source:348:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:65:1: note: expanded from here  
simd_min  
^  
program_source:348:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:67:1: note: expanded from here  
simd_min  
^  
program_source:349:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(max, reduce_max)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:69:1: note: expanded from here  
simd_max  
^  
program_source:349:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:69:1: note: expanded from here  
simd_max  
^  
program_source:349:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:71:1: note: expanded from here  
simd_max  
^  
program_source:351:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(product, reduce_mul)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:73:1: note: expanded from here  
simd_product  
^  
program_source:351:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:73:1: note: expanded from here  
simd_product  
^  
program_source:351:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:75:1: note: expanded from here  
simd_product  
^  
program_source:352:1: error: implicit declaration of function
'simd_prefix_inclusive_product' is invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_product, scan_inclusive_mul)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:77:1: note: expanded from here  
simd_prefix_inclusive_product  
^  
program_source:352:1: error: implicit declaration of function
'simd_prefix_inclusive_product' is invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:77:1: note: expanded from here  
simd_prefix_inclusive_product  
^  
program_source:352:1: error: implicit declaration of function
'simd_prefix_inclusive_product' is invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:79:1: note: expanded from here  
simd_prefix_inclusive_product  
^  
program_source:353:1: error: implicit declaration of function
'simd_prefix_exclusive_product' is invalid in OpenCL  
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_product, scan_exclusive_mul)  
^  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:81:1: note: expanded from here  
simd_prefix_exclusive_product  
^  
program_source:353:1: error: implicit declaration of function
'simd_prefix_exclusive_product' is invalid in OpenCL  
program_source:338:60: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:333:26: note: expanded from macro '\  
DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:81:1: note: expanded from here  
simd_prefix_exclusive_product  
^  
program_source:353:1: error: implicit declaration of function
'simd_prefix_exclusive_product' is invalid in OpenCL  
program_source:339:54: note: expanded from macro
'DECLARE_REDUCTION_NON_UNIFORM'  
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \  
^  
program_source:336:26: note: expanded from macro '\  
DECLARE_F_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:83:1: note: expanded from here  
simd_prefix_exclusive_product  
^  
program_source:354:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
DECLARE_I_REDUCTION_NON_UNIFORM(and, reduce_and)  
^  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:85:1: note: expanded from here  
simd_and  
^  
program_source:354:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:85:1: note: expanded from here  
simd_and  
^  
program_source:355:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
DECLARE_I_REDUCTION_NON_UNIFORM(or, reduce_or)  
^  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:87:1: note: expanded from here  
simd_or  
^  
program_source:355:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:87:1: note: expanded from here  
simd_or  
^  
program_source:356:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
DECLARE_I_REDUCTION_NON_UNIFORM(xor, reduce_xor)  
^  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:89:1: note: expanded from here  
simd_xor  
^  
program_source:356:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
program_source:333:26: note: expanded from macro
'DECLARE_I_REDUCTION_NON_UNIFORM'  
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:89:1: note: expanded from here  
simd_xor  
^  
program_source:358:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
DECLARE_SHUFFLE_NON_UNIFORM(broadcast, broadcast)  
^  
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:91:1: note: expanded from here  
simd_broadcast  
^  
program_source:358:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:91:1: note: expanded from here  
simd_broadcast  
^  
program_source:358:1: error: implicit declaration of function 'simd_broadcast'
is invalid in OpenCL  
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'  
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \  
^  
:91:1: note: expanded from here  
simd_broadcast  
^  
program_source:391:1: error: implicit declaration of function 'quad_sum' is
invalid in OpenCL  
DECLARE_REDUCTION_CLUSTERED(sum, reduce_add)  
^  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:94:1: note: expanded from here  
quad_sum  
^  
program_source:391:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:95:1: note: expanded from here  
simd_sum  
^  
program_source:391:1: error: implicit declaration of function 'quad_sum' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:96:1: note: expanded from here  
quad_sum  
^  
program_source:391:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:97:1: note: expanded from here  
simd_sum  
^  
program_source:391:1: error: implicit declaration of function 'quad_sum' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:99:1: note: expanded from here  
quad_sum  
^  
program_source:391:1: error: implicit declaration of function 'simd_sum' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:100:1: note: expanded from here  
simd_sum  
^  
program_source:392:1: error: implicit declaration of function 'quad_min' is
invalid in OpenCL  
DECLARE_REDUCTION_CLUSTERED(min, reduce_min)  
^  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:102:1: note: expanded from here  
quad_min  
^  
program_source:392:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:103:1: note: expanded from here  
simd_min  
^  
program_source:392:1: error: implicit declaration of function 'quad_min' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:104:1: note: expanded from here  
quad_min  
^  
program_source:392:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:105:1: note: expanded from here  
simd_min  
^  
program_source:392:1: error: implicit declaration of function 'quad_min' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:107:1: note: expanded from here  
quad_min  
^  
program_source:392:1: error: implicit declaration of function 'simd_min' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:108:1: note: expanded from here  
simd_min  
^  
program_source:393:1: error: implicit declaration of function 'quad_max' is
invalid in OpenCL  
DECLARE_REDUCTION_CLUSTERED(max, reduce_max)  
^  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:110:1: note: expanded from here  
quad_max  
^  
program_source:393:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:111:1: note: expanded from here  
simd_max  
^  
program_source:393:1: error: implicit declaration of function 'quad_max' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:112:1: note: expanded from here  
quad_max  
^  
program_source:393:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:113:1: note: expanded from here  
simd_max  
^  
program_source:393:1: error: implicit declaration of function 'quad_max' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:115:1: note: expanded from here  
quad_max  
^  
program_source:393:1: error: implicit declaration of function 'simd_max' is
invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:116:1: note: expanded from here  
simd_max  
^  
program_source:395:1: error: implicit declaration of function 'quad_product'
is invalid in OpenCL  
DECLARE_REDUCTION_CLUSTERED(product, reduce_mul)  
^  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:118:1: note: expanded from here  
quad_product  
^  
program_source:395:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:119:1: note: expanded from here  
simd_product  
^  
program_source:395:1: error: implicit declaration of function 'quad_product'
is invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:120:1: note: expanded from here  
quad_product  
^  
program_source:395:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:360:60: note: expanded from macro '\  
DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:121:1: note: expanded from here  
simd_product  
^  
program_source:395:1: error: implicit declaration of function 'quad_product'
is invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:123:1: note: expanded from here  
quad_product  
^  
program_source:395:1: error: implicit declaration of function 'simd_product'
is invalid in OpenCL  
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'  
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:363:60: note: expanded from macro '\  
DECLARE_F_REDUCTION_CLUSTERED'  
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:249:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:124:1: note: expanded from here  
simd_product  
^  
program_source:396:1: error: implicit declaration of function 'quad_and' is
invalid in OpenCL  
DECLARE_I_REDUCTION_CLUSTERED(and, reduce_and)  
^  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:126:1: note: expanded from here  
quad_and  
^  
program_source:396:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:127:1: note: expanded from here  
simd_and  
^  
program_source:396:1: error: implicit declaration of function 'quad_and' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:128:1: note: expanded from here  
quad_and  
^  
program_source:396:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:129:1: note: expanded from here  
simd_and  
^  
program_source:397:1: error: implicit declaration of function 'quad_or' is
invalid in OpenCL  
DECLARE_I_REDUCTION_CLUSTERED(or, reduce_or)  
^  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:131:1: note: expanded from here  
quad_or  
^  
program_source:397:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:132:1: note: expanded from here  
simd_or  
^  
program_source:397:1: error: implicit declaration of function 'quad_or' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:133:1: note: expanded from here  
quad_or  
^  
program_source:397:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:134:1: note: expanded from here  
simd_or  
^  
program_source:398:1: error: implicit declaration of function 'quad_xor' is
invalid in OpenCL  
DECLARE_I_REDUCTION_CLUSTERED(xor, reduce_xor)  
^  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:136:1: note: expanded from here  
quad_xor  
^  
program_source:398:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:245:71: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:137:1: note: expanded from here  
simd_xor  
^  
program_source:398:1: error: implicit declaration of function 'quad_xor' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:196:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return quad_##METAL_SUFFIX(x); \  
^  
:138:1: note: expanded from here  
quad_xor  
^  
program_source:398:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
program_source:360:60: note: expanded from macro
'DECLARE_I_REDUCTION_CLUSTERED'  
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:246:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'  
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:198:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_1'  
return simd_##METAL_SUFFIX(x); \  
^  
:139:1: note: expanded from here  
simd_xor  
^  
program_source:399:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
DECLARE_B_REDUCTION_CLUSTERED(and)  
^  
program_source:369:8: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(select(0, 1, predicate != 0)); \  
^  
:141:1: note: expanded from here  
simd_and  
^  
program_source:399:1: error: implicit declaration of function 'quad_and' is
invalid in OpenCL  
program_source:378:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return quad_##OP(x); \  
^  
:143:1: note: expanded from here  
quad_and  
^  
program_source:399:1: error: implicit declaration of function 'simd_and' is
invalid in OpenCL  
program_source:380:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(x); \  
^  
:144:1: note: expanded from here  
simd_and  
^  
program_source:400:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
DECLARE_B_REDUCTION_CLUSTERED(or)  
^  
program_source:369:8: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(select(0, 1, predicate != 0)); \  
^  
:146:1: note: expanded from here  
simd_or  
^  
program_source:400:1: error: implicit declaration of function 'quad_or' is
invalid in OpenCL  
program_source:378:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return quad_##OP(x); \  
^  
:148:1: note: expanded from here  
quad_or  
^  
program_source:400:1: error: implicit declaration of function 'simd_or' is
invalid in OpenCL  
program_source:380:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(x); \  
^  
:149:1: note: expanded from here  
simd_or  
^  
program_source:401:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
DECLARE_B_REDUCTION_CLUSTERED(xor)  
^  
program_source:369:8: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(select(0, 1, predicate != 0)); \  
^  
:151:1: note: expanded from here  
simd_xor  
^  
program_source:401:1: error: implicit declaration of function 'quad_xor' is
invalid in OpenCL  
program_source:378:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return quad_##OP(x); \  
^  
:153:1: note: expanded from here  
quad_xor  
^  
program_source:401:1: error: implicit declaration of function 'simd_xor' is
invalid in OpenCL  
program_source:380:12: note: expanded from macro
'DECLARE_B_REDUCTION_CLUSTERED'  
return simd_##OP(x); \  
^  
:154:1: note: expanded from here  
simd_xor  
^  
program_source:403:1: error: implicit declaration of function
'quad_shuffle_rotate_down' is invalid in OpenCL  
DECLARE_SHUFFLE_CLUSTERED(shuffle_rotate_down, rotate)  
^  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:252:69: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:208:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return quad_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:156:1: note: expanded from here  
quad_shuffle_rotate_down  
^  
program_source:403:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:252:69: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \  
^  
program_source:210:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return simd_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:157:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:403:1: error: implicit declaration of function
'quad_shuffle_rotate_down' is invalid in OpenCL  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:253:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:208:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return quad_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:158:1: note: expanded from here  
quad_shuffle_rotate_down  
^  
program_source:403:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:253:59: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \  
^  
program_source:210:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return simd_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:159:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:403:1: error: implicit declaration of function
'quad_shuffle_rotate_down' is invalid in OpenCL  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:254:60: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \  
^  
program_source:208:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return quad_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:160:1: note: expanded from here  
quad_shuffle_rotate_down  
^  
program_source:403:1: error: implicit declaration of function
'simd_shuffle_rotate_down' is invalid in OpenCL  
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'  
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \  
^  
program_source:254:60: note: expanded from macro '\  
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'  
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \  
^  
program_source:210:12: note: expanded from macro '\  
OVERLOAD_CLUSTERED_ARGS_2'  
return simd_##METAL_SUFFIX(x, ushort(delta)); \  
^  
:161:1: note: expanded from here  
simd_shuffle_rotate_down  
^  
program_source:409:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(simd_is_first, , bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:410:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(simd_all, bool expr, bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:411:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(simd_any, bool expr, bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:412:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(simd_ballot, bool expr, ulong, .i64)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:413:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(simd_active_threads_mask, , ulong, .i64)  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:415:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(quad_is_first, , bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:416:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(quad_all, bool expr, bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:417:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(quad_any, bool expr, bool, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:418:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(quad_ballot, bool expr, ushort, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:419:1: error: illegal string literal in 'asm'  
EXPOSE_BALLOT(quad_active_threads_mask, , ushort, )  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'  
__asm("air." #FUNC_EXPR #AIR_EXPR); \  
^~~~~~~~~~~~~~~~~~~~~~~~~~~  
program_source:422:23: error: implicit declaration of function 'simd_is_first'
is invalid in OpenCL  
return select(0, 1, simd_is_first());  
^  
program_source:426:23: error: implicit declaration of function 'simd_all' is
invalid in OpenCL  
return select(0, 1, simd_all(predicate != 0));  
^  
program_source:430:23: error: implicit declaration of function 'simd_any' is
invalid in OpenCL  
return select(0, 1, simd_any(predicate != 0));  
^  
program_source:434:23: error: implicit declaration of function 'simd_all' is
invalid in OpenCL  
return select(0, 1, simd_all(predicate != 0));  
^  
program_source:438:23: error: implicit declaration of function 'simd_any' is
invalid in OpenCL  
return select(0, 1, simd_any(predicate != 0));  
^  
program_source:443:14: error: implicit declaration of function 'simd_ballot'
is invalid in OpenCL  
output.x = simd_ballot(predicate != 0);  
^  
program_source:480:9: error: illegal string literal in 'asm'  
__asm("air.simdgroup.barrier");  
^~~~~~~~~~~~~~~~~~~~~~~  
program_source:487:3: error: implicit declaration of function
'__metal_simdgroup_barrier' is invalid in OpenCL  
__metal_simdgroup_barrier(flags, 1);  
^  
program_source:487:3: note: did you mean 'simdgroup_barrier'?  
program_source:483:6: note: 'simdgroup_barrier' declared here  
void simdgroup_barrier(int flags) {  
^  
program_source:681:9: error: implicit declaration of function 'simd_is_first'
is invalid in OpenCL  
if (simd_is_first()) {  
^  
program_source:673:45: warning: comparison of integers of different signs:
'__private unsigned int' and '__private int' [-Wsign-compare]  
for (unsigned int index = thread; index < bufferSize; index +=
get_local_size(0))  
~~~~~ ^ ~~~~~~~~~~  
program_source:685:45: warning: comparison of integers of different signs:
'unsigned int' and '__private int' [-Wsign-compare]  
if (thread%(32*2) == 0 && thread+32 < workGroupSize)  
~~~~~~~~~ ^ ~~~~~~~~~~~~~  
program_source:689:45: warning: comparison of integers of different signs:
'unsigned int' and '__private int' [-Wsign-compare]  
if (thread%(64*2) == 0 && thread+64 < workGroupSize)  
~~~~~~~~~ ^ ~~~~~~~~~~~~~  
program_source:693:47: warning: comparison of integers of different signs:
'unsigned int' and '__private int' [-Wsign-compare]  
if (thread%(128*2) == 0 && thread+128 < workGroupSize)  
~~~~~~~~~~ ^ ~~~~~~~~~~~~~  
  
  
File
"/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/openmm/openmm.py", line 2469, in __init__  
_openmm.Context_swiginit(self, _openmm.new_Context(*args))  
^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 Metal - 90.5
OpenGL renderer: Apple M1
OpenGL vendor: Apple

Python: 3.11.4
Locale: en_US.UTF-8
Qt version: PyQt6 6.6.1, Qt 6.6.1
Qt runtime version: 6.6.3
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: iMac
      Model Identifier: iMac21,1
      Model Number: Z12X0007MDK/A
      Chip: Apple M1
      Total Number of Cores: 8 (4 performance and 4 efficiency)
      Memory: 16 GB
      System Firmware Version: 13822.1.2
      OS Loader Version: 13822.1.2

Software:

    System Software Overview:

      System Version: macOS 26.0 (25A354)
      Kernel Version: Darwin 25.0.0
      Time since boot: 7 days, 3 hours, 8 minutes

Graphics/Displays:

    Apple M1:

      Chipset Model: Apple M1
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 8
      Vendor: Apple (0x106b)
      Metal Support: Metal 4
      Displays:
        iMac:
          Display Type: Built-In Retina LCD
          Resolution: Retina 4.5K (4480 x 2520)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal


Installed Packages:
    alabaster: 0.7.16
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 2.4.1
    Babel: 2.15.0
    beautifulsoup4: 4.12.3
    blockdiag: 3.0.0
    blosc2: 2.0.0
    build: 1.2.1
    certifi: 2023.11.17
    cftime: 1.6.4
    charset-normalizer: 3.3.2
    ChimeraX-AddCharge: 1.5.17
    ChimeraX-AddH: 2.2.6
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.5
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.12.7
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.1.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.57.1
    ChimeraX-AtomicLibrary: 14.0.6
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.4.6
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.12.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2.7
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.4
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.2.4
    ChimeraX-Clipper: 0.23.1
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.6
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.8
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.3
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2.4
    ChimeraX-DiffPlot: 1.0
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.3
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.8
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-Label: 1.1.10
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.1.6
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.2
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.1.3
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.7.1
    ChimeraX-MedicalToolbar: 1.0.3
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.14.1
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.17
    ChimeraX-ModelPanel: 1.5
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.2
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.2
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.13.5
    ChimeraX-PDB: 2.7.5
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.4.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.2
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.2
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.0.15
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.11.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.16.5
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.39.1
    ChimeraX-uniprot: 2.3
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.3
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.4
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.2
    contourpy: 1.2.1
    cxservices: 1.2.2
    cycler: 0.12.1
    Cython: 3.0.10
    debugpy: 1.8.1
    decorator: 5.1.1
    docutils: 0.20.1
    executing: 2.0.1
    filelock: 3.13.4
    fonttools: 4.53.0
    funcparserlib: 2.0.0a0
    glfw: 2.7.0
    grako: 3.16.5
    h5py: 3.11.0
    html2text: 2024.2.26
    idna: 3.7
    ihm: 1.0
    imagecodecs: 2024.1.1
    imagesize: 1.4.1
    ipykernel: 6.29.2
    ipython: 8.21.0
    ipywidgets: 8.1.3
    jedi: 0.19.1
    jinja2: 3.1.4
    jupyter-client: 8.6.0
    jupyter-core: 5.7.2
    jupyterlab-widgets: 3.0.11
    kiwisolver: 1.4.5
    line-profiler: 4.1.2
    lxml: 5.2.1
    lz4: 4.3.3
    MarkupSafe: 2.1.5
    matplotlib: 3.8.4
    matplotlib-inline: 0.1.7
    msgpack: 1.0.8
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.10.0
    numpy: 1.26.4
    openvr: 1.26.701
    packaging: 23.2
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pexpect: 4.9.0
    pillow: 10.3.0
    pip: 24.0
    pkginfo: 1.10.0
    platformdirs: 4.2.2
    prompt-toolkit: 3.0.47
    psutil: 5.9.8
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    pygments: 2.17.2
    pynmrstar: 3.3.4
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.3401
    pyparsing: 3.1.2
    pyproject-hooks: 1.1.0
    PyQt6-commercial: 6.6.1
    PyQt6-Qt6: 6.6.3
    PyQt6-sip: 13.6.0
    PyQt6-WebEngine-commercial: 6.6.0
    PyQt6-WebEngine-Qt6: 6.6.3
    python-dateutil: 2.9.0.post0
    pytz: 2024.1
    pyzmq: 26.0.3
    qtconsole: 5.5.1
    QtPy: 2.4.1
    RandomWords: 0.4.0
    requests: 2.31.0
    scipy: 1.13.0
    setuptools: 69.5.1
    setuptools-scm: 8.0.4
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.5
    sphinx: 7.2.6
    sphinx-autodoc-typehints: 2.0.1
    sphinxcontrib-applehelp: 1.0.8
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.6
    sphinxcontrib-htmlhelp: 2.0.5
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.7
    sphinxcontrib-serializinghtml: 1.1.10
    stack-data: 0.6.3
    superqt: 0.6.3
    tables: 3.8.0
    tcia-utils: 1.5.1
    tifffile: 2024.1.30
    tinyarray: 1.2.4
    tornado: 6.4.1
    traitlets: 5.14.2
    typing-extensions: 4.12.2
    tzdata: 2024.1
    urllib3: 2.2.1
    wcwidth: 0.2.13
    webcolors: 1.13
    wheel: 0.43.0
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.11

Change History (2)

comment:1 by ash@…, 6 weeks ago

The error:

UCSF ChimeraX version: 1.8 (2024-06-10)
© 2016-2024 Regents of the University of California. All rights reserved.
open /Users/grm784/Downloads/isolde-session.cxs
restore_snapshot for "NXmapHandler" returned None
restore_snapshot for "FastVolumeSurface" returned None
Exception ignored in: <function Drawing.__del__ at 0x104df6ca0>
Traceback (most recent call last):
File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/graphics/drawing.py", line 1215, in __del__
if not self.was_deleted:
^^^^^^^^^^^^^^^^
AttributeError: 'MDFFMgr' object has no attribute 'was_deleted'
restore_snapshot for "MDFFMgr" returned None
Log from Tue Sep 23 10:29:55 2025
opened ChimeraX session
isolde start
set selectionWidth 4Done loading forcefield
isolde set simFidelityMode Medium/MediumISOLDE: setting sim fidelity mode to Medium/Medium
nonbonded_cutoff_distance = 0.900000
use_gbsa = True
gbsa_cutoff = 1.100000
isolde sim start /ATraceback (most recent call last):
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/toolbar/tool.py", line 205, in callback
    bundle_info.run_provider(session, name, session.toolbar, display_name=display_name)
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/toolshed/info.py", line 397, in run_provider
    return api._api_caller.run_provider(api, session, name, mgr, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/toolshed/__init__.py", line 1306, in run_provider
    return cls._get_func(api, "run_provider")(session, name, mgr, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/__init__.py", line 184, in run_provider
    toolbar_command(session, name)
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/toolbar.py", line 21, in toolbar_command
    run(session, f'isolde sim start {_current_residue_sel_string(session)}')
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/commands/run.py", line 49, in run
    results = command.run(text, log=log, return_json=return_json)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/commands/cli.py", line 3213, in run
    result = ci.function(session, **kw_args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/cmd/cmd.py", line 122, in isolde_sim
    isolde.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/isolde.py", line 896, in start_sim
    sm.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 401, in start_sim
    sh.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 1432, in start_sim
    self._prepare_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 1377, in _prepare_sim
    s = self._simulation = app.Simulation(self.topology, self._system,
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/app/simulation.py", line 103, in __init__
    self.context = mm.Context(self.system, self.integrator, platform, platformProperties)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/openmm.py", line 2469, in __init__
    _openmm.Context_swiginit(self, _openmm.new_Context(*args))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
openmm.OpenMMException: Error compiling kernel: program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
                                       ^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
                                       ^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  return ___metal_##EXPR(x, false); \
         ^
<scratch space>:12:1: note: expanded from here
___metal_ctz
^
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
                                                ^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
                                                ^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  return ___metal_##EXPR(x, false); \
         ^
<scratch space>:16:1: note: expanded from here
___metal_ctz
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:19:1: note: expanded from here
simd_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:23:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:27:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(min, reduce_min)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:31:1: note: expanded from here
simd_min
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(max, reduce_max)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:35:1: note: expanded from here
simd_max
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(broadcast, broadcast)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(broadcast_first, broadcast_first)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:51:1: note: expanded from here
simd_broadcast_first
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(sum, reduce_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:55:1: note: expanded from here
simd_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:59:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:63:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(min, reduce_min)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:67:1: note: expanded from here
simd_min
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(max, reduce_max)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:71:1: note: expanded from here
simd_max
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(product, reduce_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:75:1: note: expanded from here
simd_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_product, scan_inclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:79:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_product, scan_exclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:83:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(and, reduce_and)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:85:1: note: expanded from here
simd_and
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:85:1: note: expanded from here
simd_and
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(or, reduce_or)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:87:1: note: expanded from here
simd_or
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:87:1: note: expanded from here
simd_or
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(xor, reduce_xor)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:89:1: note: expanded from here
simd_xor
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:89:1: note: expanded from here
simd_xor
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_NON_UNIFORM(broadcast, broadcast)
^
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(sum, reduce_add)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:94:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:95:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:96:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:97:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:99:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:100:1: note: expanded from here
simd_sum
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(min, reduce_min)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:102:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:103:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:104:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:105:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:107:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:108:1: note: expanded from here
simd_min
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(max, reduce_max)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:110:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:111:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:112:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:113:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:115:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:116:1: note: expanded from here
simd_max
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(product, reduce_mul)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:118:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:119:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:120:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:121:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:123:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:124:1: note: expanded from here
simd_product
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(and, reduce_and)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:126:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:127:1: note: expanded from here
simd_and
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:128:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:129:1: note: expanded from here
simd_and
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(or, reduce_or)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:131:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:132:1: note: expanded from here
simd_or
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:133:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:134:1: note: expanded from here
simd_or
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(xor, reduce_xor)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:136:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:137:1: note: expanded from here
simd_xor
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:138:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:139:1: note: expanded from here
simd_xor
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(and)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:141:1: note: expanded from here
simd_and
^
program_source:399:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:143:1: note: expanded from here
quad_and
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:144:1: note: expanded from here
simd_and
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(or)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:146:1: note: expanded from here
simd_or
^
program_source:400:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:148:1: note: expanded from here
quad_or
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:149:1: note: expanded from here
simd_or
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(xor)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:151:1: note: expanded from here
simd_xor
^
program_source:401:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:153:1: note: expanded from here
quad_xor
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:154:1: note: expanded from here
simd_xor
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_CLUSTERED(shuffle_rotate_down, rotate)
^
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
                                                                    ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:156:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
                                                                    ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:157:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:158:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:159:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
                                                           ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:160:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
                                                           ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:161:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:409:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:410:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:411:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:412:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_ballot, bool expr, ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:413:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_active_threads_mask, , ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:415:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:416:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:417:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:418:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_ballot, bool expr, ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:419:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_active_threads_mask, , ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:422:23: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
  return select(0, 1, simd_is_first());
                      ^
program_source:426:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
  return select(0, 1, simd_all(predicate != 0));
                      ^
program_source:430:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
  return select(0, 1, simd_any(predicate != 0));
                      ^
program_source:434:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
  return select(0, 1, simd_all(predicate != 0));
                      ^
program_source:438:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
  return select(0, 1, simd_any(predicate != 0));
                      ^
program_source:443:14: error: implicit declaration of function 'simd_ballot' is invalid in OpenCL
  output.x = simd_ballot(predicate != 0);
             ^
program_source:480:9: error: illegal string literal in 'asm'
  __asm("air.simdgroup.barrier");
        ^~~~~~~~~~~~~~~~~~~~~~~
program_source:487:3: error: implicit declaration of function '__metal_simdgroup_barrier' is invalid in OpenCL
  __metal_simdgroup_barrier(flags, 1);
  ^
program_source:487:3: note: did you mean 'simdgroup_barrier'?
program_source:483:6: note: 'simdgroup_barrier' declared here
void simdgroup_barrier(int flags) {
     ^
program_source:681:9: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
    if (simd_is_first()) {
        ^
program_source:673:45: warning: comparison of integers of different signs: '__private unsigned int' and '__private int' [-Wsign-compare]
    for (unsigned int index = thread; index < bufferSize; index += get_local_size(0))
                                      ~~~~~ ^ ~~~~~~~~~~
program_source:685:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(32*2) == 0 && thread+32 < workGroupSize)
                                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:689:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(64*2) == 0 && thread+64 < workGroupSize)
                                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:693:47: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(128*2) == 0 && thread+128 < workGroupSize)
                                   ~~~~~~~~~~ ^ ~~~~~~~~~~~~~


openmm.OpenMMException: Error compiling kernel: program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
return ___metal_##EXPR(x, false); \
^
:12:1: note: expanded from here
___metal_ctz
^
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
return ___metal_##EXPR(x, false); \
^
:16:1: note: expanded from here
___metal_ctz
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:19:1: note: expanded from here
simd_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:23:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:27:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(min, reduce_min)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:31:1: note: expanded from here
simd_min
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(max, reduce_max)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:35:1: note: expanded from here
simd_max
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(broadcast, broadcast)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(broadcast_first, broadcast_first)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:51:1: note: expanded from here
simd_broadcast_first
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(sum, reduce_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:55:1: note: expanded from here
simd_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:59:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:63:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(min, reduce_min)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:67:1: note: expanded from here
simd_min
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(max, reduce_max)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:71:1: note: expanded from here
simd_max
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(product, reduce_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:75:1: note: expanded from here
simd_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_product, scan_inclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:79:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_product, scan_exclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:83:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(and, reduce_and)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:85:1: note: expanded from here
simd_and
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:85:1: note: expanded from here
simd_and
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(or, reduce_or)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:87:1: note: expanded from here
simd_or
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:87:1: note: expanded from here
simd_or
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(xor, reduce_xor)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:89:1: note: expanded from here
simd_xor
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:89:1: note: expanded from here
simd_xor
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_NON_UNIFORM(broadcast, broadcast)
^
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(sum, reduce_add)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:94:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:95:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:96:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:97:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:99:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:100:1: note: expanded from here
simd_sum
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(min, reduce_min)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:102:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:103:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:104:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:105:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:107:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:108:1: note: expanded from here
simd_min
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(max, reduce_max)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:110:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:111:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:112:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:113:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:115:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:116:1: note: expanded from here
simd_max
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(product, reduce_mul)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:118:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:119:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:120:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:121:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:123:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:124:1: note: expanded from here
simd_product
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(and, reduce_and)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:126:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:127:1: note: expanded from here
simd_and
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:128:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:129:1: note: expanded from here
simd_and
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(or, reduce_or)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:131:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:132:1: note: expanded from here
simd_or
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:133:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:134:1: note: expanded from here
simd_or
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(xor, reduce_xor)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:136:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:137:1: note: expanded from here
simd_xor
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:138:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:139:1: note: expanded from here
simd_xor
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(and)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:141:1: note: expanded from here
simd_and
^
program_source:399:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:143:1: note: expanded from here
quad_and
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:144:1: note: expanded from here
simd_and
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(or)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:146:1: note: expanded from here
simd_or
^
program_source:400:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:148:1: note: expanded from here
quad_or
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:149:1: note: expanded from here
simd_or
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(xor)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:151:1: note: expanded from here
simd_xor
^
program_source:401:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:153:1: note: expanded from here
quad_xor
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:154:1: note: expanded from here
simd_xor
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_CLUSTERED(shuffle_rotate_down, rotate)
^
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:156:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:157:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:158:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:159:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:160:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:161:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:409:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:410:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:411:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:412:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_ballot, bool expr, ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:413:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_active_threads_mask, , ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:415:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:416:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:417:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:418:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_ballot, bool expr, ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:419:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_active_threads_mask, , ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:422:23: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
return select(0, 1, simd_is_first());
^
program_source:426:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
return select(0, 1, simd_all(predicate != 0));
^
program_source:430:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
return select(0, 1, simd_any(predicate != 0));
^
program_source:434:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
return select(0, 1, simd_all(predicate != 0));
^
program_source:438:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
return select(0, 1, simd_any(predicate != 0));
^
program_source:443:14: error: implicit declaration of function 'simd_ballot' is invalid in OpenCL
output.x = simd_ballot(predicate != 0);
^
program_source:480:9: error: illegal string literal in 'asm'
__asm("air.simdgroup.barrier");
^~~~~~~~~~~~~~~~~~~~~~~
program_source:487:3: error: implicit declaration of function '__metal_simdgroup_barrier' is invalid in OpenCL
__metal_simdgroup_barrier(flags, 1);
^
program_source:487:3: note: did you mean 'simdgroup_barrier'?
program_source:483:6: note: 'simdgroup_barrier' declared here
void simdgroup_barrier(int flags) {
^
program_source:681:9: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
if (simd_is_first()) {
^
program_source:673:45: warning: comparison of integers of different signs: '__private unsigned int' and '__private int' [-Wsign-compare]
for (unsigned int index = thread; index < bufferSize; index += get_local_size(0))
~~~~~ ^ ~~~~~~~~~~
program_source:685:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(32*2) == 0 && thread+32 < workGroupSize)
~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:689:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(64*2) == 0 && thread+64 < workGroupSize)
~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:693:47: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(128*2) == 0 && thread+128 < workGroupSize)
~~~~~~~~~~ ^ ~~~~~~~~~~~~~


File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/openmm.py", line 2469, in __init__
_openmm.Context_swiginit(self, _openmm.new_Context(*args))
^^^^^^^^^^^^^^^^^^^^^^^^^^

See log for complete Python traceback.

isolde sim start /ATraceback (most recent call last):
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/toolbar/tool.py", line 205, in callback
    bundle_info.run_provider(session, name, session.toolbar, display_name=display_name)
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/toolshed/info.py", line 397, in run_provider
    return api._api_caller.run_provider(api, session, name, mgr, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/toolshed/__init__.py", line 1306, in run_provider
    return cls._get_func(api, "run_provider")(session, name, mgr, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/__init__.py", line 184, in run_provider
    toolbar_command(session, name)
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/toolbar.py", line 21, in toolbar_command
    run(session, f'isolde sim start {_current_residue_sel_string(session)}')
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/commands/run.py", line 49, in run
    results = command.run(text, log=log, return_json=return_json)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/commands/cli.py", line 3213, in run
    result = ci.function(session, **kw_args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/cmd/cmd.py", line 122, in isolde_sim
    isolde.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/isolde.py", line 896, in start_sim
    sm.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 401, in start_sim
    sh.start_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 1432, in start_sim
    self._prepare_sim()
  File "/Users/grm784/Library/Application Support/ChimeraX/1.8/lib/python/site-packages/chimerax/isolde/openmm/openmm_interface.py", line 1377, in _prepare_sim
    s = self._simulation = app.Simulation(self.topology, self._system,
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/app/simulation.py", line 103, in __init__
    self.context = mm.Context(self.system, self.integrator, platform, platformProperties)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/openmm.py", line 2469, in __init__
    _openmm.Context_swiginit(self, _openmm.new_Context(*args))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
openmm.OpenMMException: Error compiling kernel: program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
                                         ^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
                                                  ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
                                           ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
                                   ^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
                                          ^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
                                       ^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
                                       ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
                                     ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
                                                  ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
                                        ^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
                                                   ^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
                                       ^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
                                       ^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  return ___metal_##EXPR(x, false); \
         ^
<scratch space>:12:1: note: expanded from here
___metal_ctz
^
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
                                                ^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  __asm("air." #EXPR "." #AIR_TYPE); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
                                                ^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
  return ___metal_##EXPR(x, false); \
         ^
<scratch space>:16:1: note: expanded from here
___metal_ctz
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:19:1: note: expanded from here
simd_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:23:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:27:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(min, reduce_min)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:31:1: note: expanded from here
simd_min
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(max, reduce_max)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:35:1: note: expanded from here
simd_max
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:37:1: note: expanded from here
simd_shuffle
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:41:1: note: expanded from here
simd_shuffle_up
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:43:1: note: expanded from here
simd_shuffle_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(broadcast, broadcast)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                       ^
<scratch space>:47:1: note: expanded from here
simd_broadcast
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(broadcast_first, broadcast_first)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
                                                 ^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
                         ^
<scratch space>:51:1: note: expanded from here
simd_broadcast_first
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(sum, reduce_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:55:1: note: expanded from here
simd_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:59:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:63:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(min, reduce_min)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:67:1: note: expanded from here
simd_min
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(max, reduce_max)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:71:1: note: expanded from here
simd_max
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(product, reduce_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:75:1: note: expanded from here
simd_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_product, scan_inclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:79:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_product, scan_exclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
                                                     ^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:83:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(and, reduce_and)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:85:1: note: expanded from here
simd_and
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:85:1: note: expanded from here
simd_and
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(or, reduce_or)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:87:1: note: expanded from here
simd_or
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:87:1: note: expanded from here
simd_or
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(xor, reduce_xor)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:89:1: note: expanded from here
simd_xor
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                         ^
<scratch space>:89:1: note: expanded from here
simd_xor
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_NON_UNIFORM(broadcast, broadcast)
^
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
                       ^
<scratch space>:91:1: note: expanded from here
simd_broadcast
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(sum, reduce_add)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:94:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:95:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:96:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:97:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:99:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:100:1: note: expanded from here
simd_sum
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(min, reduce_min)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:102:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:103:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:104:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:105:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:107:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:108:1: note: expanded from here
simd_min
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(max, reduce_max)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:110:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:111:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:112:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:113:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:115:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:116:1: note: expanded from here
simd_max
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(product, reduce_mul)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:118:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:119:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:120:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                         ^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:121:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:123:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                   ^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:124:1: note: expanded from here
simd_product
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(and, reduce_and)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:126:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:127:1: note: expanded from here
simd_and
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:128:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:129:1: note: expanded from here
simd_and
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(or, reduce_or)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:131:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:132:1: note: expanded from here
simd_or
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:133:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:134:1: note: expanded from here
simd_or
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(xor, reduce_xor)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:136:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
                                                                      ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:137:1: note: expanded from here
simd_xor
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return quad_##METAL_SUFFIX(x); \
           ^
<scratch space>:138:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                           ^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
    return simd_##METAL_SUFFIX(x); \
           ^
<scratch space>:139:1: note: expanded from here
simd_xor
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(and)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:141:1: note: expanded from here
simd_and
^
program_source:399:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:143:1: note: expanded from here
quad_and
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:144:1: note: expanded from here
simd_and
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(or)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:146:1: note: expanded from here
simd_or
^
program_source:400:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:148:1: note: expanded from here
quad_or
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:149:1: note: expanded from here
simd_or
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(xor)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
       ^
<scratch space>:151:1: note: expanded from here
simd_xor
^
program_source:401:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return quad_##OP(x); \
           ^
<scratch space>:153:1: note: expanded from here
quad_xor
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
    return simd_##OP(x); \
           ^
<scratch space>:154:1: note: expanded from here
simd_xor
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_CLUSTERED(shuffle_rotate_down, rotate)
^
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
                                                                    ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:156:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
                                                                    ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:157:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:158:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
                                                          ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:159:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
                                                           ^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return quad_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:160:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
                                                       ^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
                                                           ^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
    return simd_##METAL_SUFFIX(x, ushort(delta)); \
           ^
<scratch space>:161:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:409:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:410:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:411:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:412:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_ballot, bool expr, ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:413:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_active_threads_mask, , ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:415:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:416:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:417:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:418:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_ballot, bool expr, ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:419:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_active_threads_mask, , ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
  __asm("air." #FUNC_EXPR #AIR_EXPR); \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:422:23: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
  return select(0, 1, simd_is_first());
                      ^
program_source:426:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
  return select(0, 1, simd_all(predicate != 0));
                      ^
program_source:430:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
  return select(0, 1, simd_any(predicate != 0));
                      ^
program_source:434:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
  return select(0, 1, simd_all(predicate != 0));
                      ^
program_source:438:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
  return select(0, 1, simd_any(predicate != 0));
                      ^
program_source:443:14: error: implicit declaration of function 'simd_ballot' is invalid in OpenCL
  output.x = simd_ballot(predicate != 0);
             ^
program_source:480:9: error: illegal string literal in 'asm'
  __asm("air.simdgroup.barrier");
        ^~~~~~~~~~~~~~~~~~~~~~~
program_source:487:3: error: implicit declaration of function '__metal_simdgroup_barrier' is invalid in OpenCL
  __metal_simdgroup_barrier(flags, 1);
  ^
program_source:487:3: note: did you mean 'simdgroup_barrier'?
program_source:483:6: note: 'simdgroup_barrier' declared here
void simdgroup_barrier(int flags) {
     ^
program_source:681:9: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
    if (simd_is_first()) {
        ^
program_source:673:45: warning: comparison of integers of different signs: '__private unsigned int' and '__private int' [-Wsign-compare]
    for (unsigned int index = thread; index < bufferSize; index += get_local_size(0))
                                      ~~~~~ ^ ~~~~~~~~~~
program_source:685:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(32*2) == 0 && thread+32 < workGroupSize)
                                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:689:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(64*2) == 0 && thread+64 < workGroupSize)
                                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:693:47: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
        if (thread%(128*2) == 0 && thread+128 < workGroupSize)
                                   ~~~~~~~~~~ ^ ~~~~~~~~~~~~~


openmm.OpenMMException: Error compiling kernel: program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:279:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:280:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:281:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_sum)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:282:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(min)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:283:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(max)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:285:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:286:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_inclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:287:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(prefix_exclusive_product)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:288:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(and)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:289:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(or)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:263:44: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:290:1: error: illegal string literal in 'asm'
DECLARE_I_REDUCTION_BASE(xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:264:43: note: expanded from macro 'DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:292:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(broadcast)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:263:44: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
#define DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:217:40: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
#define EXPOSE_FUNCTION_I_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:271:42: note: expanded from macro 'DECLARE_REDUCTION_BASE'
#define DECLARE_REDUCTION_BASE(METAL_OP) \
^
program_source:264:43: note: expanded from macro '\
DECLARE_I_REDUCTION_BASE'
EXPOSE_FUNCTION_I_ARGS_1(quad_##METAL_OP) \
^
program_source:218:51: note: expanded from macro '\
EXPOSE_FUNCTION_I_ARGS_1'
EXPOSE_FUNCTION_OVERLOAD_ARGS_1(EXPR, int, s.i32) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:267:44: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
#define DECLARE_F_REDUCTION_BASE(METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:293:1: error: illegal string literal in 'asm'
DECLARE_REDUCTION_BASE(broadcast_first)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:272:36: note: expanded from macro 'DECLARE_REDUCTION_BASE'
DECLARE_I_REDUCTION_BASE(METAL_OP) \
^
program_source:268:43: note: expanded from macro '\
DECLARE_F_REDUCTION_BASE'
EXPOSE_FUNCTION_F_ARGS_1(quad_##METAL_OP) \
^
program_source:221:40: note: expanded from macro '\
EXPOSE_FUNCTION_F_ARGS_1'
#define EXPOSE_FUNCTION_F_ARGS_1(EXPR) \
^
program_source:164:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_1'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:295:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:296:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_xor)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:297:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:298:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:299:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_up)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:275:40: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
#define DECLARE_SHUFFLE_BASE(METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:224:38: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
#define EXPOSE_FUNCTION_ARGS_2(EXPR) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:225:51: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, int, s.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:300:1: error: illegal string literal in 'asm'
DECLARE_SHUFFLE_BASE(shuffle_rotate_down)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:276:41: note: expanded from macro 'DECLARE_SHUFFLE_BASE'
EXPOSE_FUNCTION_ARGS_2(quad_##METAL_OP) \
^
program_source:226:52: note: expanded from macro '\
EXPOSE_FUNCTION_ARGS_2'
EXPOSE_FUNCTION_OVERLOAD_ARGS_2(EXPR, uint, u.i32) \
^
program_source:168:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_2'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:229:40: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
#define EXPOSE_FUNCTION_I_ARGS_3(EXPR) \
^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
return ___metal_##EXPR(x, false); \
^
:12:1: note: expanded from here
___metal_ctz
^
program_source:302:1: error: illegal string literal in 'asm'
EXPOSE_FUNCTION_I_ARGS_3(ctz)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
^
program_source:172:9: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
__asm("air." #EXPR "." #AIR_TYPE); \
^~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:302:1: error: implicit declaration of function '___metal_ctz' is invalid in OpenCL
program_source:230:49: note: expanded from macro 'EXPOSE_FUNCTION_I_ARGS_3'
EXPOSE_FUNCTION_OVERLOAD_ARGS_3(EXPR, int, i32) \
^
program_source:175:10: note: expanded from macro '\
EXPOSE_FUNCTION_OVERLOAD_ARGS_3'
return ___metal_##EXPR(x, false); \
^
:16:1: note: expanded from here
___metal_ctz
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(sum, reduce_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:17:1: note: expanded from here
simd_sum
^
program_source:317:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:19:1: note: expanded from here
simd_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:21:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:318:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:23:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:25:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:319:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:27:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(min, reduce_min)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:29:1: note: expanded from here
simd_min
^
program_source:320:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:31:1: note: expanded from here
simd_min
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(max, reduce_max)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:33:1: note: expanded from here
simd_max
^
program_source:321:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:35:1: note: expanded from here
simd_max
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle, shuffle)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:323:1: error: implicit declaration of function 'simd_shuffle' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:37:1: note: expanded from here
simd_shuffle
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_xor, shuffle_xor)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:324:1: error: implicit declaration of function 'simd_shuffle_xor' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:39:1: note: expanded from here
simd_shuffle_xor
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_up, shuffle_up)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:325:1: error: implicit declaration of function 'simd_shuffle_up' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:41:1: note: expanded from here
simd_shuffle_up
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_down, shuffle_down)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:326:1: error: implicit declaration of function 'simd_shuffle_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:43:1: note: expanded from here
simd_shuffle_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(shuffle_rotate_down, rotate)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:327:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:45:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_UNIFORM(broadcast, broadcast)
^
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:329:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:315:24: note: expanded from macro 'DECLARE_SHUFFLE_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:47:1: note: expanded from here
simd_broadcast
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
DECLARE_REDUCTION_UNIFORM(broadcast_first, broadcast_first)
^
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:310:56: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
#define DECLARE_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:305:26: note: expanded from macro '\
DECLARE_I_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:49:1: note: expanded from here
simd_broadcast_first
^
program_source:330:1: error: implicit declaration of function 'simd_broadcast_first' is invalid in OpenCL
program_source:311:50: note: expanded from macro 'DECLARE_REDUCTION_UNIFORM'
DECLARE_I_REDUCTION_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:308:26: note: expanded from macro '\
DECLARE_F_REDUCTION_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_##OPENCL_OP) \
^
:51:1: note: expanded from here
simd_broadcast_first
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(sum, reduce_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:53:1: note: expanded from here
simd_sum
^
program_source:345:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:55:1: note: expanded from here
simd_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_sum, scan_inclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:57:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:346:1: error: implicit declaration of function 'simd_prefix_inclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:59:1: note: expanded from here
simd_prefix_inclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_sum, scan_exclusive_add)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:61:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:347:1: error: implicit declaration of function 'simd_prefix_exclusive_sum' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:63:1: note: expanded from here
simd_prefix_exclusive_sum
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(min, reduce_min)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:65:1: note: expanded from here
simd_min
^
program_source:348:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:67:1: note: expanded from here
simd_min
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(max, reduce_max)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:69:1: note: expanded from here
simd_max
^
program_source:349:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:71:1: note: expanded from here
simd_max
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(product, reduce_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:73:1: note: expanded from here
simd_product
^
program_source:351:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:75:1: note: expanded from here
simd_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_inclusive_product, scan_inclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:77:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:352:1: error: implicit declaration of function 'simd_prefix_inclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:79:1: note: expanded from here
simd_prefix_inclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
DECLARE_REDUCTION_NON_UNIFORM(prefix_exclusive_product, scan_exclusive_mul)
^
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:338:60: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
#define DECLARE_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:333:26: note: expanded from macro '\
DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:81:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:353:1: error: implicit declaration of function 'simd_prefix_exclusive_product' is invalid in OpenCL
program_source:339:54: note: expanded from macro 'DECLARE_REDUCTION_NON_UNIFORM'
DECLARE_I_REDUCTION_NON_UNIFORM(METAL_OP, OPENCL_OP) \
^
program_source:336:26: note: expanded from macro '\
DECLARE_F_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_F_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:83:1: note: expanded from here
simd_prefix_exclusive_product
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(and, reduce_and)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:85:1: note: expanded from here
simd_and
^
program_source:354:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:85:1: note: expanded from here
simd_and
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(or, reduce_or)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:87:1: note: expanded from here
simd_or
^
program_source:355:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:87:1: note: expanded from here
simd_or
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_NON_UNIFORM(xor, reduce_xor)
^
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:89:1: note: expanded from here
simd_xor
^
program_source:356:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:333:26: note: expanded from macro 'DECLARE_I_REDUCTION_NON_UNIFORM'
BRIDGE_FUNCTION_I_ARGS_1(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:89:1: note: expanded from here
simd_xor
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
DECLARE_SHUFFLE_NON_UNIFORM(broadcast, broadcast)
^
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:358:1: error: implicit declaration of function 'simd_broadcast' is invalid in OpenCL
program_source:343:24: note: expanded from macro 'DECLARE_SHUFFLE_NON_UNIFORM'
BRIDGE_FUNCTION_ARGS_2(simd_##METAL_OP, sub_group_non_uniform_##OPENCL_OP) \
^
:91:1: note: expanded from here
simd_broadcast
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(sum, reduce_add)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:94:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:95:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:96:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:97:1: note: expanded from here
simd_sum
^
program_source:391:1: error: implicit declaration of function 'quad_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:99:1: note: expanded from here
quad_sum
^
program_source:391:1: error: implicit declaration of function 'simd_sum' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:100:1: note: expanded from here
simd_sum
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(min, reduce_min)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:102:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:103:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:104:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:105:1: note: expanded from here
simd_min
^
program_source:392:1: error: implicit declaration of function 'quad_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:107:1: note: expanded from here
quad_min
^
program_source:392:1: error: implicit declaration of function 'simd_min' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:108:1: note: expanded from here
simd_min
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(max, reduce_max)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:110:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:111:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:112:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:113:1: note: expanded from here
simd_max
^
program_source:393:1: error: implicit declaration of function 'quad_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:115:1: note: expanded from here
quad_max
^
program_source:393:1: error: implicit declaration of function 'simd_max' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:116:1: note: expanded from here
simd_max
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
DECLARE_REDUCTION_CLUSTERED(product, reduce_mul)
^
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:118:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:119:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:120:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:384:58: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
#define DECLARE_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:360:60: note: expanded from macro '\
DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:121:1: note: expanded from here
simd_product
^
program_source:395:1: error: implicit declaration of function 'quad_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:123:1: note: expanded from here
quad_product
^
program_source:395:1: error: implicit declaration of function 'simd_product' is invalid in OpenCL
program_source:385:52: note: expanded from macro 'DECLARE_REDUCTION_CLUSTERED'
DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:363:60: note: expanded from macro '\
DECLARE_F_REDUCTION_CLUSTERED'
#define DECLARE_F_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:249:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_F_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:124:1: note: expanded from here
simd_product
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(and, reduce_and)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:126:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:127:1: note: expanded from here
simd_and
^
program_source:396:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:128:1: note: expanded from here
quad_and
^
program_source:396:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:129:1: note: expanded from here
simd_and
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(or, reduce_or)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:131:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:132:1: note: expanded from here
simd_or
^
program_source:397:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:133:1: note: expanded from here
quad_or
^
program_source:397:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:134:1: note: expanded from here
simd_or
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
DECLARE_I_REDUCTION_CLUSTERED(xor, reduce_xor)
^
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:136:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:245:71: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
#define BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:137:1: note: expanded from here
simd_xor
^
program_source:398:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:196:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return quad_##METAL_SUFFIX(x); \
^
:138:1: note: expanded from here
quad_xor
^
program_source:398:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:360:60: note: expanded from macro 'DECLARE_I_REDUCTION_CLUSTERED'
#define DECLARE_I_REDUCTION_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:246:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_I_ARGS_1'
OVERLOAD_CLUSTERED_ARGS_1(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:198:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_1'
return simd_##METAL_SUFFIX(x); \
^
:139:1: note: expanded from here
simd_xor
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(and)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:141:1: note: expanded from here
simd_and
^
program_source:399:1: error: implicit declaration of function 'quad_and' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:143:1: note: expanded from here
quad_and
^
program_source:399:1: error: implicit declaration of function 'simd_and' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:144:1: note: expanded from here
simd_and
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(or)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:146:1: note: expanded from here
simd_or
^
program_source:400:1: error: implicit declaration of function 'quad_or' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:148:1: note: expanded from here
quad_or
^
program_source:400:1: error: implicit declaration of function 'simd_or' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:149:1: note: expanded from here
simd_or
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
DECLARE_B_REDUCTION_CLUSTERED(xor)
^
program_source:369:8: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(select(0, 1, predicate != 0)); \
^
:151:1: note: expanded from here
simd_xor
^
program_source:401:1: error: implicit declaration of function 'quad_xor' is invalid in OpenCL
program_source:378:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return quad_##OP(x); \
^
:153:1: note: expanded from here
quad_xor
^
program_source:401:1: error: implicit declaration of function 'simd_xor' is invalid in OpenCL
program_source:380:12: note: expanded from macro 'DECLARE_B_REDUCTION_CLUSTERED'
return simd_##OP(x); \
^
:154:1: note: expanded from here
simd_xor
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
DECLARE_SHUFFLE_CLUSTERED(shuffle_rotate_down, rotate)
^
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:156:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:252:69: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
#define BRIDGE_FUNCTION_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:157:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:158:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:253:59: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, int) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:159:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'quad_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
^
program_source:208:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return quad_##METAL_SUFFIX(x, ushort(delta)); \
^
:160:1: note: expanded from here
quad_shuffle_rotate_down
^
program_source:403:1: error: implicit declaration of function 'simd_shuffle_rotate_down' is invalid in OpenCL
program_source:388:56: note: expanded from macro 'DECLARE_SHUFFLE_CLUSTERED'
#define DECLARE_SHUFFLE_CLUSTERED(METAL_OP, OPENCL_OP) \
^
program_source:254:60: note: expanded from macro '\
BRIDGE_FUNCTION_CLUSTERED_ARGS_2'
OVERLOAD_CLUSTERED_ARGS_2(METAL_SUFFIX, OPENCL_EXPR, uint) \
^
program_source:210:12: note: expanded from macro '\
OVERLOAD_CLUSTERED_ARGS_2'
return simd_##METAL_SUFFIX(x, ushort(delta)); \
^
:161:1: note: expanded from here
simd_shuffle_rotate_down
^
program_source:409:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:410:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:411:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:412:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_ballot, bool expr, ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:413:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(simd_active_threads_mask, , ulong, .i64)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:415:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_is_first, , bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:416:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_all, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:417:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_any, bool expr, bool, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:418:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_ballot, bool expr, ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:419:1: error: illegal string literal in 'asm'
EXPOSE_BALLOT(quad_active_threads_mask, , ushort, )
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:407:9: note: expanded from macro 'EXPOSE_BALLOT'
__asm("air." #FUNC_EXPR #AIR_EXPR); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:422:23: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
return select(0, 1, simd_is_first());
^
program_source:426:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
return select(0, 1, simd_all(predicate != 0));
^
program_source:430:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
return select(0, 1, simd_any(predicate != 0));
^
program_source:434:23: error: implicit declaration of function 'simd_all' is invalid in OpenCL
return select(0, 1, simd_all(predicate != 0));
^
program_source:438:23: error: implicit declaration of function 'simd_any' is invalid in OpenCL
return select(0, 1, simd_any(predicate != 0));
^
program_source:443:14: error: implicit declaration of function 'simd_ballot' is invalid in OpenCL
output.x = simd_ballot(predicate != 0);
^
program_source:480:9: error: illegal string literal in 'asm'
__asm("air.simdgroup.barrier");
^~~~~~~~~~~~~~~~~~~~~~~
program_source:487:3: error: implicit declaration of function '__metal_simdgroup_barrier' is invalid in OpenCL
__metal_simdgroup_barrier(flags, 1);
^
program_source:487:3: note: did you mean 'simdgroup_barrier'?
program_source:483:6: note: 'simdgroup_barrier' declared here
void simdgroup_barrier(int flags) {
^
program_source:681:9: error: implicit declaration of function 'simd_is_first' is invalid in OpenCL
if (simd_is_first()) {
^
program_source:673:45: warning: comparison of integers of different signs: '__private unsigned int' and '__private int' [-Wsign-compare]
for (unsigned int index = thread; index < bufferSize; index += get_local_size(0))
~~~~~ ^ ~~~~~~~~~~
program_source:685:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(32*2) == 0 && thread+32 < workGroupSize)
~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:689:45: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(64*2) == 0 && thread+64 < workGroupSize)
~~~~~~~~~ ^ ~~~~~~~~~~~~~
program_source:693:47: warning: comparison of integers of different signs: 'unsigned int' and '__private int' [-Wsign-compare]
if (thread%(128*2) == 0 && thread+128 < workGroupSize)
~~~~~~~~~~ ^ ~~~~~~~~~~~~~


File "/Applications/ChimeraX-1.8.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/openmm/openmm.py", line 2469, in __init__
_openmm.Context_swiginit(self, _openmm.new_Context(*args))
^^^^^^^^^^^^^^^^^^^^^^^^^^

See log for complete Python traceback.

\ufeffOn 01/10/2025, 14.47, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu <mailto:ChimeraX-bugs-admin@cgl.ucsf.edu>> wrote:


[Du får ikke ofte mails fra chimerax-bugs-admin@cgl.ucsf.edu <mailto:chimerax-bugs-admin@cgl.ucsf.edu>. Få mere at vide om, hvorfor dette er vigtigt, på https://aka.ms/LearnAboutSenderIdentification <https://aka.ms/LearnAboutSenderIdentification> ]


#19003: ChimeraX bug report submission
------------------------+-----------------------------
Reporter: ash@\u2026 | Type: defect
Status: new | Priority: normal
Component: Unassigned | Blocked By:
Blocking: | Notify when closed:
------------------------+-----------------------------
--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/19003> <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/19003;>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/> <https://www.rbvi.ucsf.edu/chimerax/;>
ChimeraX Issue Tracker


comment:2 by Eric Pettersen, 6 weeks ago

Component: UnassignedThird Party
Description: modified (diff)
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionisolde sim start: OpenMMException: Error compiling kernel

Reported by Azadeh Shahsavar

Note: See TracTickets for help on using tickets.