Add Arch::operator| and operator|=

The OR operator for Arch stacks bitness information.

Test: libvintf_test
Test: lshal --init-vintf

Bug: 62675393
Change-Id: I3fc56b3a39e48c8a2d452f2796123fca3fc1d4a4
Merged-In: I3fc56b3a39e48c8a2d452f2796123fca3fc1d4a4
diff --git a/test/main.cpp b/test/main.cpp
index 5f06a8b..6ce1e23 100644
--- a/test/main.cpp
+++ b/test/main.cpp
@@ -163,6 +163,18 @@
     }
 };
 
+TEST_F(LibVintfTest, ArchOperatorOr) {
+    Arch a = Arch::ARCH_EMPTY;
+    a |= Arch::ARCH_32;
+    EXPECT_EQ(Arch::ARCH_32, a);
+
+    a |= Arch::ARCH_64;
+    EXPECT_EQ(Arch::ARCH_32_64, a);
+
+    a = Arch::ARCH_EMPTY;
+    a |= Arch::ARCH_64;
+    EXPECT_EQ(Arch::ARCH_64, a);
+}
 
 TEST_F(LibVintfTest, Stringify) {
     HalManifest vm = testDeviceManifest();