VK_KHR_shader_atomic_int64 covers OpAtomic{Load|Store}

diff --git a/source/val/validate_atomics.cpp b/source/val/validate_atomics.cpp
index 6c3a73c..5c4587d 100644
--- a/source/val/validate_atomics.cpp
+++ b/source/val/validate_atomics.cpp
@@ -209,6 +209,8 @@
             case SpvOpAtomicOr:
             case SpvOpAtomicXor:
             case SpvOpAtomicIAdd:
+            case SpvOpAtomicLoad:
+            case SpvOpAtomicStore:
             case SpvOpAtomicExchange:
             case SpvOpAtomicCompareExchange: {
               if (_.GetBitWidth(result_type) == 64 &&
diff --git a/test/val/val_atomics_test.cpp b/test/val/val_atomics_test.cpp
index bbbbddd..036a9db 100644
--- a/test/val/val_atomics_test.cpp
+++ b/test/val/val_atomics_test.cpp
@@ -276,9 +276,10 @@
 
   CompileSuccessfully(GenerateShaderCode(body), SPV_ENV_VULKAN_1_0);
   ASSERT_EQ(SPV_ERROR_INVALID_DATA, ValidateInstructions(SPV_ENV_VULKAN_1_0));
-  EXPECT_THAT(getDiagnosticString(),
-              HasSubstr("AtomicLoad: according to the Vulkan spec atomic "
-                        "Result Type needs to be a 32-bit int scalar type"));
+  EXPECT_THAT(
+      getDiagnosticString(),
+      HasSubstr(
+          "AtomicLoad: 64-bit atomics require the Int64Atomics capability"));
 }
 
 TEST_F(ValidateAtomics, VK_KHR_shader_atomic_int64Success) {
@@ -304,6 +305,12 @@
 %val18 = OpAtomicIAdd %s64 %s64_var %device %relaxed %s64_1
 %val19 = OpAtomicExchange %s64 %s64_var %device %relaxed %s64_1
 %val20 = OpAtomicCompareExchange %s64 %s64_var %device %relaxed %relaxed %s64_1 %s64_1
+
+%val21 = OpAtomicLoad %u64 %u64_var %device %relaxed
+%val22 = OpAtomicLoad %s64 %s64_var %device %relaxed
+
+OpAtomicStore %u64_var %device %relaxed %u64_1
+OpAtomicStore %s64_var %device %relaxed %s64_1
 )";
 
   CompileSuccessfully(GenerateShaderCode(body, "OpCapability Int64Atomics\n"),