Add input attachment support for VK_FORMAT_A1R5G5B5_UNORM_PACK16

Bug: b/139687059
Change-Id: Ie0084a5f320f2ac36d55ff0950812a77401f4741
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35848
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 9407e0b..d47fd87 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -5637,6 +5637,12 @@
 			dst.move(2, SIMD::Float((packed[0]) & SIMD::Int(0x1F)) * SIMD::Float(1.0f / 0x1F));
 			dst.move(3, SIMD::Float(1));
 			break;
+		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
+			dst.move(0, SIMD::Float((packed[0] >> 10) & SIMD::Int(0x1F)) * SIMD::Float(1.0f / 0x1F));
+			dst.move(1, SIMD::Float((packed[0] >> 5) & SIMD::Int(0x1F)) * SIMD::Float(1.0f / 0x1F));
+			dst.move(2, SIMD::Float((packed[0]) & SIMD::Int(0x1F)) * SIMD::Float(1.0f / 0x1F));
+			dst.move(3, SIMD::Float((packed[0] >> 15) & SIMD::Int(0x1)));
+			break;
 		default:
 			UNIMPLEMENTED("VkFormat %d", int(vkFormat));
 			break;