Prefer alignas() over ALIGN()

Since the alignas() specifier is part of the type, it cannot be used in
a typedef, and compiler-specific attributes have to be used. We
abstracted these into the ALIGN() macro before, but used them in other
cases where alignas() can be used.

Using it where possible avoids formatting weirdness with clang-format.

Bug: b/144825072
Change-Id: If4185df296f0b525dd811103ac5bf1191833b154
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39468
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/Device/Vertex.hpp b/src/Device/Vertex.hpp
index 63af666..f6436e9 100644
--- a/src/Device/Vertex.hpp
+++ b/src/Device/Vertex.hpp
@@ -21,7 +21,7 @@
 
 namespace sw {
 
-ALIGN(16, struct Vertex
+struct alignas(16) Vertex
 {
 	union
 	{
@@ -52,7 +52,7 @@
 	} projected;
 
 	alignas(16) float v[MAX_INTERFACE_COMPONENTS];
-});
+};
 
 static_assert((sizeof(Vertex) & 0x0000000F) == 0, "Vertex size not a multiple of 16 bytes (alignment requirement)");
 
diff --git a/src/System/Types.hpp b/src/System/Types.hpp
index 734efb0..385d693 100644
--- a/src/System/Types.hpp
+++ b/src/System/Types.hpp
@@ -71,7 +71,7 @@
 
 typedef ALIGN(8, float) float2[2];
 
-ALIGN(16, struct int4
+struct alignas(16) int4
 {
 	int x;
 	int y;
@@ -97,9 +97,9 @@
 	{
 		return x == rhs.x && y == rhs.y && z == rhs.z && w == rhs.w;
 	}
-});
+};
 
-ALIGN(16, struct float4
+struct alignas(16) float4
 {
 	float x;
 	float y;
@@ -125,7 +125,7 @@
 	{
 		return x == rhs.x && y == rhs.y && z == rhs.z && w == rhs.w;
 	}
-});
+};
 
 inline constexpr float4 vector(float x, float y, float z, float w)
 {