=encoding utf8 =head1 NAME clrxasm - assemble program to binaries code =head1 SYNOPSIS clrxasm [-63Swam?] [-D SYM[=VALUE]] [-I PATH] [-o OUTFILE] [-b BINFORMAT] [-g GPUDEVICE] [-A ARCH] [-t VERSION] [--defsym=SYM[=VALUE]] [--includePath=PATH] [--output OUTFILE] [--binaryFormat=BINFORMAT] [--64bit] [--gpuType=GPUDEVICE] [--arch=ARCH] [--driverVersion=VERSION] [--llvmVersion=VERSION] [--newROCmBinFormat] [--forceAddSymbols] [--noWarnings] [--alternate] [--buggyFPLit] [--oldModParam] [--noMacroCase] [--wave32] [--policy=VERSION] [--help] [--usage] [--version] [file...] =head1 DESCRIPTION This is CLRadeonExtender assembler. This assembler can assemble code for all Radeon GPU's that based on the GCN1.0/1.1/1.2 architecture and it can generate AMD Catalyst OpenCL binaries and the GalliumCompute OpenCL binaries. It is compatible with GNU assembler and support the almost GNU assembler's pseudo-operations (directives) including macros and repetitions. An assembler read source from many files. If no input file specified an assembler will read source from standard input. =head1 OPTIONS Following options clrxasm can recognize: =over 8 =item B<-D SYMBOL[=VALUE]>, B<--defsym=SYMBOL[=VALUE]> Define symbol. Value is optional and if it is not given then assembler set 0 by default. This option can be occurred many times to defining many symbols. =item B<-I PATH>, B<--includePath=PATH> Add an include path to search path list. Assembler begins search from current directory and follows to next include paths. This option can be occurred many times to adding many include paths. =item B<-o FILENAME>, B<--output=FILENAME> Set output file name. By default assembler write output to the 'a.out' file. =item B<-b BINFORMAT>, B<--binaryFormat=BINFORMAT> Set output binary format. This settings can be overriden in source code. Assembler accepts following formats: 'amd', 'amdcl2', 'gallium', 'rocm', 'rawcode'. =item B<-6>, B<--64bit> Enable generating of the 64-bit binaries (only for AMD catalyst format). =item B<-g GPUDEVICE>, B<--gpuType=GPUDEVICE> Choose device type. Device type name is case-insensitive. List of supported GPUs: Baffin, Bonaire, CapeVerde, Carrizo, Dummy, Ellesmere, Fiji, GFX700, GFX701, GFX801, GFX802, GFX803, GFX804, GFX900, GFX901, GFX902, GFX903, GFX904, GFX905, GFX906, GFX907, Goose, Hainan, Hawaii, Horse, Iceland, Kalindi, Mullins, Oland, Pitcairn, Polaris10, Polaris11, Polaris12, Polaris20, Polaris21, Polaris22, Raven, Spectre, Spooky, Stoney, Tahiti, Tonga, Topaz, Vega10, Vega11, Vega12, Vega20, GFX1000, GFX1010, GFX1011, Navi10. =item B<-A ARCH>, B<--arch=ARCH> Choose device architecture. Architecture name is case-insensitive. List of supported architectures: SI, VI, CI, VEGA, VEGA20, Navi, NaviDL, GFX6, GFX7, GFX8, GFX9, GFX906, GFX10, GFX1011, GCN1.0, GCN1.1, GCN1.2, GCN1.4, GCN1.4.1, GCN1.5, GCN1.5.1. =item B<-t VERSION>, B<--driverVersion=VERSION> Choose AMD Catalyst/GalliumCompute Mesa OpenCL driver version. Version can retrieved from clinfo program that display field 'Driver version' where version is. Version is number in that form: MajorVersion*100 + MinorVersion. =item B<--llvmVersion=VERSION> Choose LLVM compiler version. Version can be retrieved from clinfo program that display field Version. Version is number in that form: MajorVersion*100 + MinorVersion. =item B<--newROCmBinFormat> Enable new ROCm binary format. =item B<-S>, B<--forceAddSymbols> Add all non-local symbols to binaries. By default any assembler does not add any symbols to keep compatibility with original format. =item B<-w>, B<--noWarnings> Do not print all warnings. =item B<-a>, B<--alternate> Enable alternate macro syntax. =item B<--buggyFPLit> Choose old and buggy floating point literals rules (to 0.1.2 version) for compatibility. =item B<--oldModParam> Choose old modifier parametrization that accepts only 0 and 1 values (to 0.1.5 version) for compatibility. =item B<-m>, B<--noMacroCase> Do not ignore letter's case in macro names (by default is ignored). =item B<-3>, B<--wave32> Set wavefront size as 32 elements (apply only for GFX10 devices). =item B<--policy=VERSION> Set CLRX policy version. =item B<-?>, B<--help> Print help and list of the options. =item B<--usage> Print usage for this program =item B<--version> Print version =back =head1 ENVIRONMENT Following environment variables impacts on assembler work: =over 8 =item CLRX_AMDOCL_PATH Path to AMDOCL (AMD OpenCL implementation) shared library (libamdocl32.so, libamdocl64.so, amdocl.dll or amdocl64.dll). =item CLRX_MESAOCL_PATH Path to Mesa3D Gallium OpenCL (libMesaOpenCL.so or libOpenCL.so) shared library. =item CLRX_LLVMCONFIG_PATH Path to llvm-config program. =back =head1 SAMPLE USAGE Following sample usages: =over 8 =item clrxasm -o output.clo source.clrx Assemble source code 'source.clrx' to binary output 'output.clo'. =item clrxasm -bamdcl2 -6 -t240500 -o output.clo source.clrx Assemble source code 'source.clrx' to AMD OpenCL 2.0 binary format output 'output.clo' with 64-bits and for driver version 240500. =back =head1 RETURN VALUE Returns zero if assembler succeeded, otherwise returns 1. =head1 AUTHOR Mateusz Szpakowski =head1 SEE ALSO clrxdisasm(1)