Index: src/BasicTypes-gen.cpp
===================================================================
--- src/BasicTypes-gen.cpp	(revision 829821c468be4f6d1bc7cd0065241c9c9f738b87)
+++ src/BasicTypes-gen.cpp	(revision 1cc5c6ad3eddc42bd30039e07b17b59bafd8a5e5)
@@ -99,34 +99,34 @@
 
 	{ Float16, "Float16", "_FH", "_Float16", "DF16_", Floating, Float32, Float16Complex, -1, 7 },
-	{ Float16Complex, "Float16Complex", "_FHC", "_Float16 _Complex", "CDF16_", Floating, Float32Complex, -1, -1, 7 },
-
-	{ Float32, "Float32", "_F", "_Float32", "DF32_", Floating, Float, Float32Complex, -1, 8 },
-	{ Float32Complex, "Float32Complex", "_FC", "_Float32 _Complex", "CDF32_", Floating, FloatComplex, -1, -1, 8 },
-	{ Float, "Float", "F", "float", "f", Floating, Float32x, FloatComplex, -1, 9 },
-	{ FloatComplex, "FloatComplex", "FC", "float _Complex", "Cf", Floating, Float32xComplex, -1, -1, 9 },
-	{ Float32x, "Float32x", "_FX", "_Float32x", "DF32x_", Floating, Float64, Float32xComplex, -1, 10 },
-	{ Float32xComplex, "Float32xComplex", "_FXC", "_Float32x _Complex", "CDF32x_", Floating, Float64Complex, -1, -1, 10 },
-
-	{ Float64, "Float64", "_FD", "_Float64", "DF64_", Floating, Double, Float64Complex, -1, 11 },
-	{ Float64Complex, "Float64Complex", "_FDC", "_Float64 _Complex", "CDF64_", Floating, DoubleComplex, -1, -1, 11 },
-	{ Double, "Double", "D", "double", "d", Floating, Float64x, DoubleComplex, -1, 12 },
-	{ DoubleComplex, "DoubleComplex", "DC", "double _Complex", "Cd", Floating, Float64xComplex, -1, -1, 12 },
-	{ Float64x, "Float64x", "_FDX", "_Float64x", "DF64x_", Floating, Float80, Float64xComplex, -1, 13 },
-	{ Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, LongDoubleComplex, -1, -1, 13 },
-
-	{ Float80, "Float80", "_F80", "__float80", "Dq", Floating, LongDouble, LongDoubleComplex, -1, 14 },
+	{ Float16Complex, "Float16Complex", "_FHC", "_Float16 _Complex", "CDF16_", Floating, Float32Complex, -1, -1, 8 },
+
+	{ Float32, "Float32", "_F", "_Float32", "DF32_", Floating, Float, Float32Complex, -1, 9 },
+	{ Float32Complex, "Float32Complex", "_FC", "_Float32 _Complex", "CDF32_", Floating, FloatComplex, -1, -1, 10 },
+	{ Float, "Float", "F", "float", "f", Floating, Float32x, FloatComplex, -1, 11 },
+	{ FloatComplex, "FloatComplex", "FC", "float _Complex", "Cf", Floating, Float32xComplex, -1, -1, 12 },
+	{ Float32x, "Float32x", "_FX", "_Float32x", "DF32x_", Floating, Float64, Float32xComplex, -1, 13 },
+	{ Float32xComplex, "Float32xComplex", "_FXC", "_Float32x _Complex", "CDF32x_", Floating, Float64Complex, -1, -1, 14 },
+
+	{ Float64, "Float64", "_FD", "_Float64", "DF64_", Floating, Double, Float64Complex, -1, 15 },
+	{ Float64Complex, "Float64Complex", "_FDC", "_Float64 _Complex", "CDF64_", Floating, DoubleComplex, -1, -1, 16 },
+	{ Double, "Double", "D", "double", "d", Floating, Float64x, DoubleComplex, -1, 17 },
+	{ DoubleComplex, "DoubleComplex", "DC", "double _Complex", "Cd", Floating, Float64xComplex, -1, -1, 18 },
+	{ Float64x, "Float64x", "_FDX", "_Float64x", "DF64x_", Floating, Float80, Float64xComplex, -1, 19 },
+	{ Float64xComplex, "Float64xComplex", "_FDXC", "_Float64x _Complex", "CDF64x_", Floating, LongDoubleComplex, -1, -1, 20 },
+
+	{ Float80, "Float80", "_F80", "__float80", "Dq", Floating, LongDouble, LongDoubleComplex, -1, 21 },
 	// __float80 _Complex, no complex counterpart
 	// gcc implements long double as float80 (12 bytes)
-	{ LongDouble, "LongDouble", "LD", "long double", "e", Floating, uuFloat128, LongDoubleComplex, -1, 15 },
-	{ LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128Complex, -1, -1, 15 },
-
-	{ uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, Float128, Float128Complex, -1, 16 },
+	{ LongDouble, "LongDouble", "LD", "long double", "e", Floating, uuFloat128, LongDoubleComplex, -1, 22 },
+	{ LongDoubleComplex, "LongDoubleComplex", "LDC", "long double _Complex", "Ce", Floating, Float128Complex, -1, -1, 23 },
+
+	{ uuFloat128, "uuFloat128", "__FLD", "__float128", "g", Floating, Float128, Float128Complex, -1, 24 },
 	// __float128 _Complex, no complex counterpart
-	{ Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, Float128x, Float128Complex, -1, 17 },
-	{ Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, Float128xComplex, -1, -1, 17 },
+	{ Float128, "Float128", "_FLD", "_Float128", "DF128_", Floating, Float128x, Float128Complex, -1, 25 },
+	{ Float128Complex, "Float128Complex", "_FLDC", "_Float128 _Complex", "CDF128_", Floating, Float128xComplex, -1, -1, 26 },
 
 	// may not be supported
-	{ Float128x, "Float128x", "_FLDX", "_Float128x", "DF128x_", Floating, Float128xComplex, -1, -1, 18 },
-	{ Float128xComplex, "Float128xComplex", "_FLDXC", "_Float128x _Complex", "CDF128x_", Floating, -1, -1, -1, 18 }
+	{ Float128x, "Float128x", "_FLDX", "_Float128x", "DF128x_", Floating, Float128xComplex, -1, -1, 27 },
+	{ Float128xComplex, "Float128xComplex", "_FLDXC", "_Float128x _Complex", "CDF128x_", Floating, -1, -1, -1, 28 }
 }; // graph
 
Index: tests/.expect/arithmeticConversions.arm64.txt
===================================================================
--- tests/.expect/arithmeticConversions.arm64.txt	(revision 1cc5c6ad3eddc42bd30039e07b17b59bafd8a5e5)
+++ tests/.expect/arithmeticConversions.arm64.txt	(revision 1cc5c6ad3eddc42bd30039e07b17b59bafd8a5e5)
@@ -0,0 +1,57 @@
+integral + integral
+               c   sc   uc  ssi  usi   si   ui  sli  uli slli ulli
+  bytes        1    1    1    2    2    4    4    8    8    8    8
+          + ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
+     c  1 |    1    1    1    2    2    4    4    8    8    8    8
+    sc  1 |    1    1    1    2    2    4    4    8    8    8    8
+    uc  1 |    1    1    1    2    2    4    4    8    8    8    8
+   ssi  2 |    2    2    2    2    2    4    4    8    8    8    8
+   usi  2 |    2    2    2    2    2    4    4    8    8    8    8
+    si  4 |    4    4    4    4    4    4    4    8    8    8    8
+    ui  4 |    4    4    4    4    4    4    4    8    8    8    8
+   sli  8 |    8    8    8    8    8    8    8    8    8    8    8
+   uli  8 |    8    8    8    8    8    8    8    8    8    8    8
+  slli  8 |    8    8    8    8    8    8    8    8    8    8    8
+  ulli  8 |    8    8    8    8    8    8    8    8    8    8    8
+
+float + integral
+               c   sc   uc  ssi  usi   si   ui  sli  uli slli ulli
+  bytes        1    1    1    2    2    4    4    8    8    8    8
+          + ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
+   f32  4 |    4    4    4    4    4    4    4    4    4    4    4
+  f32c  8 |    8    8    8    8    8    8    8    8    8    8    8
+     f  4 |    4    4    4    4    4    4    4    4    4    4    4
+    fc  8 |    8    8    8    8    8    8    8    8    8    8    8
+  f32x  8 |    8    8    8    8    8    8    8    8    8    8    8
+ f32xc 16 |   16   16   16   16   16   16   16   16   16   16   16
+   f64  8 |    8    8    8    8    8    8    8    8    8    8    8
+  f64c 16 |   16   16   16   16   16   16   16   16   16   16   16
+     d  8 |    8    8    8    8    8    8    8    8    8    8    8
+    dc 16 |   16   16   16   16   16   16   16   16   16   16   16
+  f64x 16 |   16   16   16   16   16   16   16   16   16   16   16
+ f64xc 32 |   32   32   32   32   32   32   32   32   32   32   32
+    ld 16 |   16   16   16   16   16   16   16   16   16   16   16
+   ldc 32 |   32   32   32   32   32   32   32   32   32   32   32
+  f128 16 |   16   16   16   16   16   16   16   16   16   16   16
+ f128c 32 |   32   32   32   32   32   32   32   32   32   32   32
+
+float + float
+              f32  f32c     f    fc  f32x f32xc   f64  f64c     d    dc  f64x f64xc    ld   ldc  f128 f128c
+  bytes         4     8     4     8     8    16     8    16     8    16    16    32    16    32    16    32
+          + ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ------
+   f32  4 |     4     8     4     8     8    16     8    16     8    16    16    32    16    32    16    32
+  f32c  8 |     8     8     8     8    16    16    16    16    16    16    32    32    32    32    32    32
+     f  4 |     4     8     4     8     8    16     8    16     8    16    16    32    16    32    16    32
+    fc  8 |     8     8     8     8    16    16    16    16    16    16    32    32    32    32    32    32
+  f32x  8 |     8    16     8    16     8    16     8    16     8    16    16    32    16    32    16    32
+ f32xc 16 |    16    16    16    16    16    16    16    16    16    16    32    32    32    32    32    32
+   f64  8 |     8    16     8    16     8    16     8    16     8    16    16    32    16    32    16    32
+  f64c 16 |    16    16    16    16    16    16    16    16    16    16    32    32    32    32    32    32
+     d  8 |     8    16     8    16     8    16     8    16     8    16    16    32    16    32    16    32
+    dc 16 |    16    16    16    16    16    16    16    16    16    16    32    32    32    32    32    32
+  f64x 16 |    16    32    16    32    16    32    16    32    16    32    16    32    16    32    16    32
+ f64xc 32 |    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32
+    ld 16 |    16    32    16    32    16    32    16    32    16    32    16    32    16    32    16    32
+   ldc 32 |    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32
+  f128 16 |    16    32    16    32    16    32    16    32    16    32    16    32    16    32    16    32
+ f128c 32 |    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32    32
