Add tests for VK_EXT_shader_atomic_float2

New tests:
dEQP-VK.glsl.atomic_operations.*float16*
dEQP-VK.glsl.atomic_operations.min_float*
dEQP-VK.glsl.atomic_operations.max_float*
dEQP-VK.image.atomic_operations.min*r32f*
dEQP-VK.image.atomic_operations.max*r32f*

Affects:

dEQP-VK.glsl.atomic_operations.*float*
dEQP-VK.image.atomic_operations.add*r32f*
dEQP-VK.image.atomic_operations.exchange*r32f*

Components: Vulkan

VK-GL-CTS issue: 2566

Change-Id: I7462cc74e799c2245407220fa9db7e5b659f86f4
(cherry picked from commit ca4e5aff66bccbbe88935c10e2c55a3147c1fc03)
(cherry picked from commit 218eb73c4f30e720bd19a61704f5ad6ebcd73d48)
diff --git a/android/cts/master/vk-master-2021-03-01/glsl.txt b/android/cts/master/vk-master-2021-03-01/glsl.txt
index ab20c15..a376b9f 100644
--- a/android/cts/master/vk-master-2021-03-01/glsl.txt
+++ b/android/cts/master/vk-master-2021-03-01/glsl.txt
@@ -567,6 +567,19 @@
 dEQP-VK.glsl.builtin.precision_double.fma.compute.vec2
 dEQP-VK.glsl.builtin.precision_double.fma.compute.vec3
 dEQP-VK.glsl.builtin.precision_double.fma.compute.vec4
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_fragment_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_geometry_reference
@@ -649,6 +662,19 @@
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_tess_eval_reference
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.add_float16_vertex
+dEQP-VK.glsl.atomic_operations.add_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.add_float16_fragment
+dEQP-VK.glsl.atomic_operations.add_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.add_float16_geometry
+dEQP-VK.glsl.atomic_operations.add_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.add_float16_compute
+dEQP-VK.glsl.atomic_operations.add_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.add_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.add_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.add_signed_fragment_reference
 dEQP-VK.glsl.atomic_operations.add_signed_geometry_reference
@@ -703,6 +729,19 @@
 dEQP-VK.glsl.atomic_operations.add_float64_compute
 dEQP-VK.glsl.atomic_operations.add_float64_compute_shared
 dEQP-VK.glsl.atomic_operations.add_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float16_vertex
+dEQP-VK.glsl.atomic_operations.min_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float16_fragment
+dEQP-VK.glsl.atomic_operations.min_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float16_geometry
+dEQP-VK.glsl.atomic_operations.min_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float16_compute
+dEQP-VK.glsl.atomic_operations.min_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed_fragment_reference
 dEQP-VK.glsl.atomic_operations.min_signed_geometry_reference
@@ -717,6 +756,19 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned_tess_eval_reference
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float32_vertex
+dEQP-VK.glsl.atomic_operations.min_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float32_fragment
+dEQP-VK.glsl.atomic_operations.min_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float32_geometry
+dEQP-VK.glsl.atomic_operations.min_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float32_compute
+dEQP-VK.glsl.atomic_operations.min_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_fragment_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_geometry_reference
@@ -731,6 +783,32 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_tess_eval_reference
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float64_vertex
+dEQP-VK.glsl.atomic_operations.min_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float64_fragment
+dEQP-VK.glsl.atomic_operations.min_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float64_geometry
+dEQP-VK.glsl.atomic_operations.min_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float64_compute
+dEQP-VK.glsl.atomic_operations.min_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float16_vertex
+dEQP-VK.glsl.atomic_operations.max_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float16_fragment
+dEQP-VK.glsl.atomic_operations.max_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float16_geometry
+dEQP-VK.glsl.atomic_operations.max_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float16_compute
+dEQP-VK.glsl.atomic_operations.max_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed_fragment_reference
 dEQP-VK.glsl.atomic_operations.max_signed_geometry_reference
@@ -745,6 +823,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned_tess_eval_reference
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float32_vertex
+dEQP-VK.glsl.atomic_operations.max_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float32_fragment
+dEQP-VK.glsl.atomic_operations.max_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float32_geometry
+dEQP-VK.glsl.atomic_operations.max_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float32_compute
+dEQP-VK.glsl.atomic_operations.max_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_fragment_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_geometry_reference
@@ -759,6 +850,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_tess_eval_reference
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float64_vertex
+dEQP-VK.glsl.atomic_operations.max_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float64_fragment
+dEQP-VK.glsl.atomic_operations.max_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float64_geometry
+dEQP-VK.glsl.atomic_operations.max_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float64_compute
+dEQP-VK.glsl.atomic_operations.max_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float64_compute_reference
 dEQP-VK.glsl.atomic_operations.and_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.and_signed_fragment_reference
 dEQP-VK.glsl.atomic_operations.and_signed_geometry_reference
diff --git a/android/cts/master/vk-master-2021-03-01/image.txt b/android/cts/master/vk-master-2021-03-01/image.txt
index 4fd438b..96213fc 100644
--- a/android/cts/master/vk-master-2021-03-01/image.txt
+++ b/android/cts/master/vk-master-2021-03-01/image.txt
@@ -1490,6 +1490,8 @@
 dEQP-VK.image.atomic_operations.dec.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.dec.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.dec.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1498,10 +1500,14 @@
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1510,10 +1516,14 @@
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1522,6 +1532,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1530,6 +1542,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1538,6 +1552,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1546,6 +1562,8 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -1554,10 +1572,14 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1566,6 +1588,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1574,6 +1598,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1582,6 +1608,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1590,6 +1618,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -1598,10 +1628,14 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1610,6 +1644,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1618,6 +1654,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1626,6 +1664,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1634,6 +1674,8 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -1642,10 +1684,14 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -1654,6 +1700,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1662,6 +1710,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1670,6 +1720,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1678,6 +1730,8 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -1686,10 +1740,14 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1698,6 +1756,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1706,6 +1766,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1714,6 +1776,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1722,6 +1786,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -1730,10 +1796,18 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1742,10 +1816,14 @@
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1754,10 +1832,14 @@
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1766,6 +1848,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1774,6 +1858,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1782,6 +1868,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1790,6 +1878,8 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -1798,10 +1888,14 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1810,6 +1904,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1818,6 +1914,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1826,6 +1924,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1834,6 +1934,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -1842,10 +1944,14 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -1854,6 +1960,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1862,6 +1970,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1870,6 +1980,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1878,6 +1990,8 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -1886,10 +2000,14 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -1898,6 +2016,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1906,6 +2026,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1914,6 +2036,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1922,6 +2046,8 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -1930,10 +2056,14 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -1942,6 +2072,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -1950,6 +2082,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -1958,6 +2092,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -1966,6 +2102,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -1974,10 +2112,16 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r64i_end_result
diff --git a/android/cts/master/vk-master/glsl.txt b/android/cts/master/vk-master/glsl.txt
index 84e6871..e7b145f 100644
--- a/android/cts/master/vk-master/glsl.txt
+++ b/android/cts/master/vk-master/glsl.txt
@@ -16534,6 +16534,19 @@
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_tess_ctrl
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_tess_eval
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_compute
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_vertex
 dEQP-VK.glsl.atomic_operations.exchange_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_fragment
@@ -16664,6 +16677,19 @@
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.add_float16_vertex
+dEQP-VK.glsl.atomic_operations.add_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.add_float16_fragment
+dEQP-VK.glsl.atomic_operations.add_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.add_float16_geometry
+dEQP-VK.glsl.atomic_operations.add_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.add_float16_compute
+dEQP-VK.glsl.atomic_operations.add_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.add_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.add_signed_vertex
 dEQP-VK.glsl.atomic_operations.add_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.add_signed_fragment
@@ -16742,6 +16768,19 @@
 dEQP-VK.glsl.atomic_operations.add_float64_compute
 dEQP-VK.glsl.atomic_operations.add_float64_compute_shared
 dEQP-VK.glsl.atomic_operations.add_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float16_vertex
+dEQP-VK.glsl.atomic_operations.min_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float16_fragment
+dEQP-VK.glsl.atomic_operations.min_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float16_geometry
+dEQP-VK.glsl.atomic_operations.min_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float16_compute
+dEQP-VK.glsl.atomic_operations.min_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed_vertex
 dEQP-VK.glsl.atomic_operations.min_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed_fragment
@@ -16768,6 +16807,19 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float32_vertex
+dEQP-VK.glsl.atomic_operations.min_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float32_fragment
+dEQP-VK.glsl.atomic_operations.min_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float32_geometry
+dEQP-VK.glsl.atomic_operations.min_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float32_compute
+dEQP-VK.glsl.atomic_operations.min_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_vertex
 dEQP-VK.glsl.atomic_operations.min_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_fragment
@@ -16794,6 +16846,32 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float64_vertex
+dEQP-VK.glsl.atomic_operations.min_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float64_fragment
+dEQP-VK.glsl.atomic_operations.min_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float64_geometry
+dEQP-VK.glsl.atomic_operations.min_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float64_compute
+dEQP-VK.glsl.atomic_operations.min_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float16_vertex
+dEQP-VK.glsl.atomic_operations.max_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float16_fragment
+dEQP-VK.glsl.atomic_operations.max_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float16_geometry
+dEQP-VK.glsl.atomic_operations.max_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float16_compute
+dEQP-VK.glsl.atomic_operations.max_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed_vertex
 dEQP-VK.glsl.atomic_operations.max_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed_fragment
@@ -16820,6 +16898,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float32_vertex
+dEQP-VK.glsl.atomic_operations.max_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float32_fragment
+dEQP-VK.glsl.atomic_operations.max_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float32_geometry
+dEQP-VK.glsl.atomic_operations.max_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float32_compute
+dEQP-VK.glsl.atomic_operations.max_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_vertex
 dEQP-VK.glsl.atomic_operations.max_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_fragment
@@ -16846,6 +16937,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float64_vertex
+dEQP-VK.glsl.atomic_operations.max_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float64_fragment
+dEQP-VK.glsl.atomic_operations.max_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float64_geometry
+dEQP-VK.glsl.atomic_operations.max_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float64_compute
+dEQP-VK.glsl.atomic_operations.max_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float64_compute_reference
 dEQP-VK.glsl.atomic_operations.and_signed_vertex
 dEQP-VK.glsl.atomic_operations.and_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.and_signed_fragment
diff --git a/android/cts/master/vk-master/image.txt b/android/cts/master/vk-master/image.txt
index c112417..1660d28 100644
--- a/android/cts/master/vk-master/image.txt
+++ b/android/cts/master/vk-master/image.txt
@@ -17326,6 +17326,8 @@
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17334,6 +17336,8 @@
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64i_end_result
@@ -17342,6 +17346,8 @@
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17350,6 +17356,8 @@
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17358,6 +17366,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17366,6 +17376,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17374,6 +17386,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17382,6 +17396,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17390,6 +17406,8 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -17398,6 +17416,8 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17406,6 +17426,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17414,6 +17436,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17422,6 +17446,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17430,6 +17456,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17438,6 +17466,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17446,6 +17476,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64i_end_result
@@ -17454,6 +17486,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17462,6 +17496,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17470,6 +17506,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17478,6 +17516,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17486,6 +17526,8 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -17494,6 +17536,8 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17502,6 +17546,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -17510,6 +17556,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17518,6 +17566,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17526,6 +17576,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17534,6 +17586,8 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -17542,6 +17596,8 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64i_end_result
@@ -17550,6 +17606,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17558,6 +17616,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17566,6 +17626,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17574,6 +17636,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17582,6 +17646,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17590,14 +17656,22 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17606,6 +17680,8 @@
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64i_end_result
@@ -17614,6 +17690,8 @@
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17622,6 +17700,8 @@
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17630,6 +17710,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17638,6 +17720,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17646,6 +17730,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17654,6 +17740,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17662,6 +17750,8 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -17670,6 +17760,8 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17678,6 +17770,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17686,6 +17780,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17694,6 +17790,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17702,6 +17800,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17710,6 +17810,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17718,6 +17820,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64i_end_result
@@ -17726,6 +17830,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17734,6 +17840,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17742,6 +17850,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17750,6 +17860,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17758,6 +17870,8 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -17766,6 +17880,8 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17774,6 +17890,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -17782,6 +17900,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17790,6 +17910,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17798,6 +17920,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17806,6 +17930,8 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -17814,6 +17940,8 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64i_end_result
@@ -17822,6 +17950,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17830,6 +17960,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17838,6 +17970,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17846,6 +17980,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17854,6 +17990,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17862,10 +18000,16 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32ui_end_result
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32i_end_result
diff --git a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
index fe57bdb..e014ffc 100644
--- a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
+++ b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
@@ -336,6 +336,16 @@
 		nextPtr  = &physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.pNext;
 	}
 
+	vk::VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT physicalDeviceShaderAtomicFloat2FeaturesEXT;
+	deMemset(&physicalDeviceShaderAtomicFloat2FeaturesEXT, 0, sizeof(physicalDeviceShaderAtomicFloat2FeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_atomic_float2")) )
+	{
+		physicalDeviceShaderAtomicFloat2FeaturesEXT.sType = getStructureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>();
+		*nextPtr = &physicalDeviceShaderAtomicFloat2FeaturesEXT;
+		nextPtr  = &physicalDeviceShaderAtomicFloat2FeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceShaderAtomicFloatFeaturesEXT physicalDeviceShaderAtomicFloatFeaturesEXT;
 	deMemset(&physicalDeviceShaderAtomicFloatFeaturesEXT, 0, sizeof(physicalDeviceShaderAtomicFloatFeaturesEXT));
 
@@ -1876,6 +1886,15 @@
 		}
 	}
 
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_atomic_float2")) && physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax )
+	{
+		if ( physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderImageFloat32AtomicMinMax == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderImageFloat32AtomicMinMax not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
 	return result;
 }
 
diff --git a/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
index df45519..8c7f987 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageAtomicOperationTests.cpp
@@ -580,6 +580,15 @@
 		if ((operation == ATOMIC_OPERATION_ADD) && !atomicFloatFeatures.shaderImageFloat32AtomicAdd)
 			TCU_THROW(NotSupportedError, "shaderImageFloat32AtomicAdd not supported");
 
+		if (operation == ATOMIC_OPERATION_MIN || operation == ATOMIC_OPERATION_MAX)
+		{
+			context.requireDeviceFunctionality("VK_EXT_shader_atomic_float2");
+			if (!context.getShaderAtomicFloat2FeaturesEXT().shaderImageFloat32AtomicMinMax)
+			{
+				TCU_THROW(NotSupportedError, "shaderImageFloat32AtomicMinMax not supported");
+			}
+		}
+
 		if ((formatProperties.optimalTilingFeatures & requiredFeatures) != requiredFeatures)
 			TCU_FAIL("Required format feature bits not supported");
 
@@ -723,7 +732,9 @@
 		const string	atomicInvocation		= getAtomicOperationShaderFuncName(m_operation) + "(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
 		const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
 		const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
-		const string	extensions				= "#extension GL_EXT_shader_atomic_float : enable\n#extension GL_KHR_memory_scope_semantics : enable  ";
+		const string	extensions				= "#extension GL_EXT_shader_atomic_float : enable\n"
+												  "#extension GL_EXT_shader_atomic_float2 : enable\n"
+												  "#extension GL_KHR_memory_scope_semantics : enable";
 
 		string source = versionDecl + "\n" + extensions + "\n";
 
@@ -849,7 +860,9 @@
 												"(u_resultImage, " + atomicCoord + compareExchangeStr + ", " + atomicArgExpr + ")";
 		const string	shaderImageFormatStr	= getShaderImageFormatQualifier(m_format);
 		const string	shaderImageTypeStr		= getShaderImageType(m_format, m_imageType);
-		const string	extensions				= "#extension GL_EXT_shader_atomic_float : enable\n#extension GL_KHR_memory_scope_semantics : enable  ";
+		const string	extensions				= "#extension GL_EXT_shader_atomic_float : enable\n"
+												  "#extension GL_EXT_shader_atomic_float2 : enable\n"
+												  "#extension GL_KHR_memory_scope_semantics : enable";
 
 		string source = versionDecl + "\n" + extensions + "\n"
 						"\n";
@@ -1453,12 +1466,12 @@
 	for (deInt32 x = 0; x < resultBuffer.getWidth();  x++)
 	{
 		const void* resultValue = resultBuffer.getPixelPtr(x, y, z);
-		deUint32 floatToUnsignedValue = 0;
+		deInt32 floatToIntValue = 0;
 		bool isFloatValue = false;
 		if (isFloatFormat(mapTextureFormat(m_format)))
 		{
 			isFloatValue = true;
-			floatToUnsignedValue = static_cast<deUint32>(*((float*)resultValue));
+			floatToIntValue = static_cast<deInt32>(*((float*)resultValue));
 		}
 
 		if (isOrderIndependentAtomicOperation(m_operation))
@@ -1492,7 +1505,7 @@
 			else
 			{
 				// 32-bit floating point
-				if (!isValueCorrect<deUint32>(floatToUnsignedValue, x, y, z, gridSize, extendedGridSize))
+				if (!isValueCorrect<deInt32>(floatToIntValue, x, y, z, gridSize, extendedGridSize))
 					return false;
 			}
 		}
@@ -1507,7 +1520,7 @@
 				matchFound = is64Bit ?
 					(*((deInt64*)resultValue) == getAtomicFuncArgument<deInt64>(m_operation, gid, extendedGridSize)) :
 					isFloatValue ?
-					floatToUnsignedValue == getAtomicFuncArgument<deUint32>(m_operation, gid, extendedGridSize) :
+					floatToIntValue == getAtomicFuncArgument<deInt32>(m_operation, gid, extendedGridSize) :
 					(*((deInt32*)resultValue) == getAtomicFuncArgument<deInt32>(m_operation, gid, extendedGridSize));
 
 			}
@@ -1526,7 +1539,7 @@
 				matchFound = is64Bit ?
 					(*((deInt64*)resultValue) == getAtomicFuncArgument<deInt64>(m_operation, gid, extendedGridSize)) :
 					isFloatValue ?
-					floatToUnsignedValue == getAtomicFuncArgument<deUint32>(m_operation, gid, extendedGridSize) :
+					floatToIntValue == getAtomicFuncArgument<deInt32>(m_operation, gid, extendedGridSize) :
 					(*((deInt32*)resultValue) == getAtomicFuncArgument<deInt32>(m_operation, gid, extendedGridSize));
 			}
 
@@ -1802,7 +1815,7 @@
 		else
 		{
 			// 32-bit floating point
-			if (!areValuesCorrect<deUint32>(resultBuffer, true, x, y, z, gridSize, extendedGridSize))
+			if (!areValuesCorrect<deInt32>(resultBuffer, true, x, y, z, gridSize, extendedGridSize))
 				return false;
 		}
 	}
@@ -1975,10 +1988,13 @@
 							if (backingType.type == ImageBackingType::SPARSE && (vkImageType != VK_IMAGE_TYPE_2D && vkImageType != VK_IMAGE_TYPE_3D))
 								continue;
 
-							// Only ADD and EXCHANGE are supported on floating-point
+							// Only some operations are supported on floating-point
 							if (format.type == tcu::TextureFormat::FLOAT)
 							{
-								if (operation != ATOMIC_OPERATION_ADD && operation != ATOMIC_OPERATION_EXCHANGE)
+								if (operation != ATOMIC_OPERATION_ADD &&
+									operation != ATOMIC_OPERATION_EXCHANGE &&
+									operation != ATOMIC_OPERATION_MIN &&
+									operation != ATOMIC_OPERATION_MAX)
 								{
 									continue;
 								}
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktAtomicOperationTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktAtomicOperationTests.cpp
index dd16c4c..7462387 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktAtomicOperationTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktAtomicOperationTests.cpp
@@ -37,6 +37,8 @@
 #include "tcuStringTemplate.hpp"
 #include "tcuResultCollector.hpp"
 
+#include "deFloat16.h"
+#include "deMath.hpp"
 #include "deStringUtil.hpp"
 #include "deSharedPtr.hpp"
 #include "deRandom.hpp"
@@ -211,7 +213,8 @@
 
 enum DataType
 {
-	DATA_TYPE_INT32 = 0,
+	DATA_TYPE_FLOAT16 = 0,
+	DATA_TYPE_INT32,
 	DATA_TYPE_UINT32,
 	DATA_TYPE_FLOAT32,
 	DATA_TYPE_INT64,
@@ -225,6 +228,7 @@
 {
 	static const char* const s_names[] =
 	{
+		"float16_t",
 		"int",
 		"uint",
 		"float",
@@ -345,6 +349,18 @@
 
 };
 
+template<typename T>
+bool nanSafeSloppyEquals(T x, T y)
+{
+	if (deIsIEEENaN(x) && deIsIEEENaN(y))
+		return true;
+
+	if (deIsIEEENaN(x) || deIsIEEENaN(y))
+		return false;
+
+	return fabs(deToDouble(x) - deToDouble(y)) < 0.00001;
+}
+
 template<typename dataTypeT>
 class TestBufferFloatingPoint : public BufferInterface
 {
@@ -364,7 +380,7 @@
 		T			input[NUM_ELEMENTS];
 		T			compare[NUM_ELEMENTS];
 		T			output[NUM_ELEMENTS];
-		T			invocationHitCount[NUM_ELEMENTS];
+		deInt32		invocationHitCount[NUM_ELEMENTS];
 		deInt32		index;
 	};
 
@@ -385,19 +401,35 @@
 
 		for (int i = 0; i < NUM_ELEMENTS / 2; i++)
 		{
-			m_ptr->inout[i] = static_cast<dataTypeT>(rnd.getFloat());
-			// The first half of compare elements match with every even index.
-			// The second half matches with odd indices. This causes the
-			// overlapping operations to only select one.
-			m_ptr->compare[i] = m_ptr->inout[i] + (dataTypeT)(i % 2);
-			m_ptr->compare[i + NUM_ELEMENTS / 2] = m_ptr->inout[i] + (dataTypeT)(1 - (i % 2));
+			m_ptr->inout[i] = deToFloatType<dataTypeT>(rnd.getFloat());
+			// These aren't used by any of the float tests
+			m_ptr->compare[i] = deToFloatType<dataTypeT>(0.0);
 		}
+		// Add special cases for NaN and +/-0
+		// 0: min(sNaN, x)
+		m_ptr->inout[0] = deSignalingNaN<dataTypeT>();
+		// 1: min(x, sNaN)
+		m_ptr->input[1 * 2 + 0] = deSignalingNaN<dataTypeT>();
+		// 2: min(qNaN, x)
+		m_ptr->inout[2] = deQuietNaN<dataTypeT>();
+		// 3: min(x, qNaN)
+		m_ptr->input[3 * 2 + 0] = deQuietNaN<dataTypeT>();
+		// 4: min(NaN, NaN)
+		m_ptr->inout[4] = deSignalingNaN<dataTypeT>();
+		m_ptr->input[4 * 2 + 0] = deQuietNaN<dataTypeT>();
+		m_ptr->input[4 * 2 + 1] = deQuietNaN<dataTypeT>();
+		// 5: min(+0, -0)
+		m_ptr->inout[5] = deToFloatType<dataTypeT>(-0.0);
+		m_ptr->input[5 * 2 + 0] = deToFloatType<dataTypeT>(0.0);
+		m_ptr->input[5 * 2 + 1] = deToFloatType<dataTypeT>(0.0);
+
 		for (int i = 0; i < NUM_ELEMENTS; i++)
 		{
-			m_ptr->input[i] = static_cast<dataTypeT>(rnd.getFloat());
+			m_ptr->input[i] = deToFloatType<dataTypeT>(rnd.getFloat());
 			m_ptr->output[i] = pattern;
 			m_ptr->invocationHitCount[i] = 0;
 		}
+
 		m_ptr->index = 0;
 
 		// Take a copy to be used when calculating expected values.
@@ -424,11 +456,9 @@
 
 		bool compare(T inout, T output0, T output1)
 		{
-			T diff1 = static_cast<T>(fabs(m_inout - inout));
-			T diff2 = static_cast<T>(fabs(m_output[0] - output0));
-			T diff3 = static_cast<T>(fabs(m_output[1] - output1));
-			const T epsilon = static_cast<T>(0.00001);
-			return (diff1 < epsilon) && (diff2 < epsilon) && (diff3 < epsilon);
+			return nanSafeSloppyEquals(m_inout, inout) &&
+			       nanSafeSloppyEquals(m_output[0], output0) &&
+			       nanSafeSloppyEquals(m_output[1], output1);
 		}
 	};
 
@@ -447,6 +477,8 @@
 {
 	switch (type)
 	{
+	case DATA_TYPE_FLOAT16:
+		return new TestBufferFloatingPoint<deFloat16>(atomicOp);
 	case DATA_TYPE_INT32:
 		return new TestBuffer<deInt32>(atomicOp);
 	case DATA_TYPE_UINT32:
@@ -591,6 +623,83 @@
 	}
 }
 
+template<typename T>
+void handleExceptionalFloatMinMaxValues(vector<T> &values, T x, T y)
+{
+
+	if (deIsSignalingNaN(x) && deIsSignalingNaN(y))
+	{
+		values.push_back(deQuietNaN<T>());
+		values.push_back(deSignalingNaN<T>());
+	}
+	else if (deIsSignalingNaN(x))
+	{
+		values.push_back(deQuietNaN<T>());
+		values.push_back(deSignalingNaN<T>());
+		if (!deIsIEEENaN(y))
+			values.push_back(y);
+	}
+	else if (deIsSignalingNaN(y))
+	{
+		values.push_back(deQuietNaN<T>());
+		values.push_back(deSignalingNaN<T>());
+		if (!deIsIEEENaN(x))
+			values.push_back(x);
+	}
+	else if (deIsIEEENaN(x) && deIsIEEENaN(y))
+	{
+		// Both quiet NaNs
+		values.push_back(deQuietNaN<T>());
+	}
+	else if (deIsIEEENaN(x))
+	{
+		// One quiet NaN and one non-NaN.
+		values.push_back(y);
+	}
+	else if (deIsIEEENaN(y))
+	{
+		// One quiet NaN and one non-NaN.
+		values.push_back(x);
+	}
+	else if ((deIsPositiveZero(x) && deIsNegativeZero(y)) || (deIsNegativeZero(x) && deIsPositiveZero(y)))
+	{
+		values.push_back(deToFloatType<T>(0.0));
+		values.push_back(deToFloatType<T>(-0.0));
+	}
+}
+
+template<typename T>
+T floatAdd(T x, T y)
+{
+	if (deIsIEEENaN(x) || deIsIEEENaN(y))
+		return deQuietNaN<T>();
+	return deToFloatType<T>(deToDouble(x) + deToDouble(y));
+}
+
+template<typename T>
+vector<T> floatMinValues(T x, T y)
+{
+	vector<T> values;
+	handleExceptionalFloatMinMaxValues(values, x, y);
+	if (values.empty())
+	{
+		values.push_back(deToDouble(x) < deToDouble(y) ? x : y);
+	}
+	return values;
+}
+
+template<typename T>
+vector<T> floatMaxValues(T x, T y)
+{
+	vector<T> values;
+	handleExceptionalFloatMinMaxValues(values, x, y);
+	if (values.empty())
+	{
+		values.push_back(deToDouble(x) > deToDouble(y) ? x : y);
+	}
+	return values;
+}
+
 // Use template to handle both float and double cases. SPIR-V should
 // have separate operations for both.
 template<typename T>
@@ -626,8 +735,60 @@
 		{
 		case ATOMIC_OP_ADD:
 		{
-			exp.push_back(Expected<T>(originalInout + input0 + input1, originalInout, originalInout + input0));
-			exp.push_back(Expected<T>(originalInout + input0 + input1, originalInout + input1, originalInout));
+			exp.push_back(Expected<T>(floatAdd(floatAdd(originalInout, input0), input1), originalInout, floatAdd(originalInout, input0)));
+			exp.push_back(Expected<T>(floatAdd(floatAdd(originalInout, input0), input1), floatAdd(originalInout, input1), originalInout));
+		}
+		break;
+
+		case ATOMIC_OP_MIN:
+		{
+			// The case where input0 is combined first
+			vector<T> minOriginalAndInput0 = floatMinValues(originalInout, input0);
+			for (T x : minOriginalAndInput0)
+			{
+				vector<T> minAll = floatMinValues(x, input1);
+				for (T y : minAll)
+				{
+					exp.push_back(Expected<T>(y, originalInout, x));
+				}
+			}
+
+			// The case where input1 is combined first
+			vector<T> minOriginalAndInput1 = floatMinValues(originalInout, input1);
+			for (T x : minOriginalAndInput1)
+			{
+				vector<T> minAll = floatMinValues(x, input0);
+				for (T y : minAll)
+				{
+					exp.push_back(Expected<T>(y, x, originalInout));
+				}
+			}
+		}
+		break;
+
+		case ATOMIC_OP_MAX:
+		{
+			// The case where input0 is combined first
+			vector<T> minOriginalAndInput0 = floatMaxValues(originalInout, input0);
+			for (T x : minOriginalAndInput0)
+			{
+				vector<T> minAll = floatMaxValues(x, input1);
+				for (T y : minAll)
+				{
+					exp.push_back(Expected<T>(y, originalInout, x));
+				}
+			}
+
+			// The case where input1 is combined first
+			vector<T> minOriginalAndInput1 = floatMaxValues(originalInout, input1);
+			for (T x : minOriginalAndInput1)
+			{
+				vector<T> minAll = floatMaxValues(x, input0);
+				for (T y : minAll)
+				{
+					exp.push_back(Expected<T>(y, x, originalInout));
+				}
+			}
 		}
 		break;
 
@@ -648,17 +809,37 @@
 		const T resOutput1 = result.output[elementNdx + NUM_ELEMENTS / 2];
 
 
-		if (!exp[0].compare(resIo, resOutput0, resOutput1) && !exp[1].compare(resIo, resOutput0, resOutput1))
+		bool hasMatch = false;
+		for (Expected<T> e : exp)
+		{
+			if (e.compare(resIo, resOutput0, resOutput1))
+			{
+				hasMatch = true;
+				break;
+			}
+		}
+		if (!hasMatch)
 		{
 			std::ostringstream errorMessage;
 			errorMessage << "ERROR: Result value check failed at index " << elementNdx
-				<< ". Expected one of the two outcomes: InOut = " << exp[0].m_inout
-				<< ", Output0 = " << exp[0].m_output[0] << ", Output1 = "
-				<< exp[0].m_output[1] << ", or InOut = " << exp[1].m_inout
-				<< ", Output0 = " << exp[1].m_output[0] << ", Output1 = "
-				<< exp[1].m_output[1] << ". Got: InOut = " << resIo
-				<< ", Output0 = " << resOutput0 << ", Output1 = "
-				<< resOutput1 << ". Using Input0 = " << original.input[elementNdx]
+				<< ". Expected one of the outcomes:";
+
+			bool first = true;
+			for (Expected<T> e : exp)
+			{
+				if (!first)
+					errorMessage << ", or";
+				first = false;
+
+				errorMessage << " InOut = " << e.m_inout
+					<< ", Output0 = " << e.m_output[0]
+					<< ", Output1 = " << e.m_output[1];
+			}
+
+			errorMessage << ". Got: InOut = " << resIo
+				<< ", Output0 = " << resOutput0
+				<< ", Output1 = " << resOutput1
+				<< ". Using Input0 = " << original.input[elementNdx]
 				<< " and Input1 = " << original.input[elementNdx + NUM_ELEMENTS / 2] << ".";
 
 			resultCollector.fail(errorMessage.str());
@@ -898,6 +1079,62 @@
 		}
 	}
 
+	if (m_dataType == DATA_TYPE_FLOAT16)
+	{
+		ctx.requireDeviceFunctionality("VK_EXT_shader_atomic_float2");
+		if (m_atomicOp == ATOMIC_OP_ADD)
+		{
+			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderSharedFloat16AtomicAdd)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point shared add atomic operation not supported");
+				}
+			}
+			else
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderBufferFloat16AtomicAdd)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point buffer add atomic operation not supported");
+				}
+			}
+		}
+		if (m_atomicOp == ATOMIC_OP_MIN || m_atomicOp == ATOMIC_OP_MAX)
+		{
+			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderSharedFloat16AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point shared min/max atomic operation not supported");
+				}
+			}
+			else
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderBufferFloat16AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point buffer min/max atomic operation not supported");
+				}
+			}
+		}
+		if (m_atomicOp == ATOMIC_OP_EXCHANGE)
+		{
+			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderSharedFloat16Atomics)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point shared atomic operations not supported");
+				}
+			}
+			else
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderBufferFloat16Atomics)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat16: 16-bit floating point buffer atomic operations not supported");
+				}
+			}
+		}
+	}
+
 	if (m_dataType == DATA_TYPE_FLOAT32)
 	{
 		ctx.requireDeviceFunctionality("VK_EXT_shader_atomic_float");
@@ -918,6 +1155,24 @@
 				}
 			}
 		}
+		if (m_atomicOp == ATOMIC_OP_MIN || m_atomicOp == ATOMIC_OP_MAX)
+		{
+			ctx.requireDeviceFunctionality("VK_EXT_shader_atomic_float2");
+			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderSharedFloat32AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat32: 32-bit floating point shared min/max atomic operation not supported");
+				}
+			}
+			else
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderBufferFloat32AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat32: 32-bit floating point buffer min/max atomic operation not supported");
+				}
+			}
+		}
 		if (m_atomicOp == ATOMIC_OP_EXCHANGE)
 		{
 			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
@@ -957,6 +1212,24 @@
 				}
 			}
 		}
+		if (m_atomicOp == ATOMIC_OP_MIN || m_atomicOp == ATOMIC_OP_MAX)
+		{
+			ctx.requireDeviceFunctionality("VK_EXT_shader_atomic_float2");
+			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderSharedFloat64AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat64: 64-bit floating point shared min/max atomic operation not supported");
+				}
+			}
+			else
+			{
+				if (!ctx.getShaderAtomicFloat2FeaturesEXT().shaderBufferFloat64AtomicMinMax)
+				{
+					TCU_THROW(NotSupportedError, "VkShaderAtomicFloat64: 64-bit floating point buffer min/max atomic operation not supported");
+				}
+			}
+		}
 		if (m_atomicOp == ATOMIC_OP_EXCHANGE)
 		{
 			if (m_shaderType.getMemoryType() == AtomicMemoryType::SHARED)
@@ -1138,10 +1411,12 @@
 			<< "#extension GL_EXT_shader_atomic_int64 : enable\n"
 			;
 	}
-	else if ((m_dataType == DATA_TYPE_FLOAT32) || (m_dataType == DATA_TYPE_FLOAT64))
+	else if ((m_dataType == DATA_TYPE_FLOAT16) || (m_dataType == DATA_TYPE_FLOAT32) || (m_dataType == DATA_TYPE_FLOAT64))
 	{
 		extensions
+			<< "#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable\n"
 			<< "#extension GL_EXT_shader_atomic_float : enable\n"
+			<< "#extension GL_EXT_shader_atomic_float2 : enable\n"
 			<< "#extension GL_KHR_memory_scope_semantics : enable\n"
 			;
 	}
@@ -1213,6 +1488,7 @@
 		const char*		description;
 	} dataSign[] =
 	{
+		{ DATA_TYPE_FLOAT16,"float16",			"Tests using 16-bit float data"				},
 		{ DATA_TYPE_INT32,	"signed",			"Tests using signed data (int)"				},
 		{ DATA_TYPE_UINT32,	"unsigned",			"Tests using unsigned data (uint)"			},
 		{ DATA_TYPE_FLOAT32,"float32",			"Tests using 32-bit float data"				},
@@ -1244,9 +1520,12 @@
 			for (int shaderTypeNdx = 0; shaderTypeNdx < DE_LENGTH_OF_ARRAY(shaderTypes); shaderTypeNdx++)
 			{
 				// Only ADD and EXCHANGE are supported on floating-point
-				if (dataSign[signNdx].dataType == DATA_TYPE_FLOAT32 || dataSign[signNdx].dataType == DATA_TYPE_FLOAT64)
+				if (dataSign[signNdx].dataType == DATA_TYPE_FLOAT16 || dataSign[signNdx].dataType == DATA_TYPE_FLOAT32 || dataSign[signNdx].dataType == DATA_TYPE_FLOAT64)
 				{
-					if (atomicOp[opNdx].value != ATOMIC_OP_ADD && atomicOp[opNdx].value != ATOMIC_OP_EXCHANGE)
+					if (atomicOp[opNdx].value != ATOMIC_OP_ADD &&
+					    atomicOp[opNdx].value != ATOMIC_OP_MIN &&
+					    atomicOp[opNdx].value != ATOMIC_OP_MAX &&
+					    atomicOp[opNdx].value != ATOMIC_OP_EXCHANGE)
 					{
 						continue;
 					}
diff --git a/external/vulkancts/mustpass/master/vk-default/glsl.txt b/external/vulkancts/mustpass/master/vk-default/glsl.txt
index 073297d..9137e52 100644
--- a/external/vulkancts/mustpass/master/vk-default/glsl.txt
+++ b/external/vulkancts/mustpass/master/vk-default/glsl.txt
@@ -16582,6 +16582,19 @@
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_tess_ctrl
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_tess_eval
 dEQP-VK.glsl.opaque_type_indexing.atomic_counter.dynamically_uniform_compute
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex
+dEQP-VK.glsl.atomic_operations.exchange_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment
+dEQP-VK.glsl.atomic_operations.exchange_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry
+dEQP-VK.glsl.atomic_operations.exchange_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.exchange_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.exchange_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_vertex
 dEQP-VK.glsl.atomic_operations.exchange_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.exchange_signed_fragment
@@ -16712,6 +16725,19 @@
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.comp_swap_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.add_float16_vertex
+dEQP-VK.glsl.atomic_operations.add_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.add_float16_fragment
+dEQP-VK.glsl.atomic_operations.add_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.add_float16_geometry
+dEQP-VK.glsl.atomic_operations.add_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.add_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.add_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.add_float16_compute
+dEQP-VK.glsl.atomic_operations.add_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.add_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.add_signed_vertex
 dEQP-VK.glsl.atomic_operations.add_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.add_signed_fragment
@@ -16790,6 +16816,19 @@
 dEQP-VK.glsl.atomic_operations.add_float64_compute
 dEQP-VK.glsl.atomic_operations.add_float64_compute_shared
 dEQP-VK.glsl.atomic_operations.add_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float16_vertex
+dEQP-VK.glsl.atomic_operations.min_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float16_fragment
+dEQP-VK.glsl.atomic_operations.min_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float16_geometry
+dEQP-VK.glsl.atomic_operations.min_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float16_compute
+dEQP-VK.glsl.atomic_operations.min_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed_vertex
 dEQP-VK.glsl.atomic_operations.min_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed_fragment
@@ -16816,6 +16855,19 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float32_vertex
+dEQP-VK.glsl.atomic_operations.min_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float32_fragment
+dEQP-VK.glsl.atomic_operations.min_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float32_geometry
+dEQP-VK.glsl.atomic_operations.min_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float32_compute
+dEQP-VK.glsl.atomic_operations.min_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_vertex
 dEQP-VK.glsl.atomic_operations.min_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.min_signed64bit_fragment
@@ -16842,6 +16894,32 @@
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.min_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.min_float64_vertex
+dEQP-VK.glsl.atomic_operations.min_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.min_float64_fragment
+dEQP-VK.glsl.atomic_operations.min_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.min_float64_geometry
+dEQP-VK.glsl.atomic_operations.min_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.min_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.min_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.min_float64_compute
+dEQP-VK.glsl.atomic_operations.min_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.min_float64_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float16_vertex
+dEQP-VK.glsl.atomic_operations.max_float16_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float16_fragment
+dEQP-VK.glsl.atomic_operations.max_float16_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float16_geometry
+dEQP-VK.glsl.atomic_operations.max_float16_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float16_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float16_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float16_compute
+dEQP-VK.glsl.atomic_operations.max_float16_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float16_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed_vertex
 dEQP-VK.glsl.atomic_operations.max_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed_fragment
@@ -16868,6 +16946,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float32_vertex
+dEQP-VK.glsl.atomic_operations.max_float32_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float32_fragment
+dEQP-VK.glsl.atomic_operations.max_float32_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float32_geometry
+dEQP-VK.glsl.atomic_operations.max_float32_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float32_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float32_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float32_compute
+dEQP-VK.glsl.atomic_operations.max_float32_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float32_compute_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_vertex
 dEQP-VK.glsl.atomic_operations.max_signed64bit_vertex_reference
 dEQP-VK.glsl.atomic_operations.max_signed64bit_fragment
@@ -16894,6 +16985,19 @@
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_shared
 dEQP-VK.glsl.atomic_operations.max_unsigned64bit_compute_reference
+dEQP-VK.glsl.atomic_operations.max_float64_vertex
+dEQP-VK.glsl.atomic_operations.max_float64_vertex_reference
+dEQP-VK.glsl.atomic_operations.max_float64_fragment
+dEQP-VK.glsl.atomic_operations.max_float64_fragment_reference
+dEQP-VK.glsl.atomic_operations.max_float64_geometry
+dEQP-VK.glsl.atomic_operations.max_float64_geometry_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl
+dEQP-VK.glsl.atomic_operations.max_float64_tess_ctrl_reference
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval
+dEQP-VK.glsl.atomic_operations.max_float64_tess_eval_reference
+dEQP-VK.glsl.atomic_operations.max_float64_compute
+dEQP-VK.glsl.atomic_operations.max_float64_compute_shared
+dEQP-VK.glsl.atomic_operations.max_float64_compute_reference
 dEQP-VK.glsl.atomic_operations.and_signed_vertex
 dEQP-VK.glsl.atomic_operations.and_signed_vertex_reference
 dEQP-VK.glsl.atomic_operations.and_signed_fragment
diff --git a/external/vulkancts/mustpass/master/vk-default/image.txt b/external/vulkancts/mustpass/master/vk-default/image.txt
index c112417..1660d28 100644
--- a/external/vulkancts/mustpass/master/vk-default/image.txt
+++ b/external/vulkancts/mustpass/master/vk-default/image.txt
@@ -17326,6 +17326,8 @@
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17334,6 +17336,8 @@
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d.transfer.normal_read.normal_img.r64i_end_result
@@ -17342,6 +17346,8 @@
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17350,6 +17356,8 @@
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.1d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17358,6 +17366,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17366,6 +17376,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17374,6 +17386,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17382,6 +17396,8 @@
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17390,6 +17406,8 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -17398,6 +17416,8 @@
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17406,6 +17426,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17414,6 +17436,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17422,6 +17446,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17430,6 +17456,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17438,6 +17466,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17446,6 +17476,8 @@
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.2d_array.transfer.normal_read.sparse_img.r64i_end_result
@@ -17454,6 +17486,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17462,6 +17496,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17470,6 +17506,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17478,6 +17516,8 @@
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17486,6 +17526,8 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -17494,6 +17536,8 @@
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.3d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17502,6 +17546,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -17510,6 +17556,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17518,6 +17566,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17526,6 +17576,8 @@
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17534,6 +17586,8 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -17542,6 +17596,8 @@
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube.transfer.normal_read.sparse_img.r64i_end_result
@@ -17550,6 +17606,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17558,6 +17616,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17566,6 +17626,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17574,6 +17636,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17582,6 +17646,8 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17590,14 +17656,22 @@
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.min.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.min.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17606,6 +17680,8 @@
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d.transfer.normal_read.normal_img.r64i_end_result
@@ -17614,6 +17690,8 @@
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17622,6 +17700,8 @@
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.1d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17630,6 +17710,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17638,6 +17720,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17646,6 +17730,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17654,6 +17740,8 @@
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17662,6 +17750,8 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.normal_img.r64i_end_result
@@ -17670,6 +17760,8 @@
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17678,6 +17770,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17686,6 +17780,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17694,6 +17790,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17702,6 +17800,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17710,6 +17810,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17718,6 +17820,8 @@
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.2d_array.transfer.normal_read.sparse_img.r64i_end_result
@@ -17726,6 +17830,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.normal_img.r64i_end_result
@@ -17734,6 +17840,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17742,6 +17850,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17750,6 +17860,8 @@
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17758,6 +17870,8 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.normal_img.r64i_end_result
@@ -17766,6 +17880,8 @@
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.3d.transfer.normal_read.sparse_img.r64i_end_result
@@ -17774,6 +17890,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.normal_img.r64i_end_result
@@ -17782,6 +17900,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17790,6 +17910,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17798,6 +17920,8 @@
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17806,6 +17930,8 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.normal_img.r64i_end_result
@@ -17814,6 +17940,8 @@
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube.transfer.normal_read.sparse_img.r64i_end_result
@@ -17822,6 +17950,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.normal_img.r64i_end_result
@@ -17830,6 +17960,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.normal_read.sparse_img.r64i_end_result
@@ -17838,6 +17970,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.normal_img.r64i_end_result
@@ -17846,6 +17980,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.notransfer.sparse_read.sparse_img.r64i_end_result
@@ -17854,6 +17990,8 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.normal_img.r64i_end_result
@@ -17862,10 +18000,16 @@
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32i_intermediate_values
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64ui_intermediate_values
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_end_result
 dEQP-VK.image.atomic_operations.max.cube_array.transfer.normal_read.sparse_img.r64i_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.notransfer.normal_read.normal_img.r32f_intermediate_values
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_end_result
+dEQP-VK.image.atomic_operations.max.buffer.transfer.normal_read.normal_img.r32f_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32ui_end_result
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32ui_intermediate_values
 dEQP-VK.image.atomic_operations.and.1d.notransfer.normal_read.normal_img.r32i_end_result
diff --git a/external/vulkancts/scripts/src/mandatory_features.txt b/external/vulkancts/scripts/src/mandatory_features.txt
index f30c336..d548d81 100644
--- a/external/vulkancts/scripts/src/mandatory_features.txt
+++ b/external/vulkancts/scripts/src/mandatory_features.txt
@@ -148,3 +148,4 @@
 VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR	FEATURES ( shaderSubgroupUniformControlFlow )					REQUIREMENTS ( VK_KHR_shader_subgroup_uniform_control_flow )
 VkPhysicalDevicePresentIdFeaturesKHR						FEATURES ( presentId )											REQUIREMENTS ( VK_KHR_present_id )
 VkPhysicalDevicePresentWaitFeaturesKHR						FEATURES ( presentWait )										REQUIREMENTS ( VK_KHR_present_wait )
+VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT				FEATURES ( shaderImageFloat32AtomicMinMax )							REQUIREMENTS ( VK_EXT_shader_atomic_float2 physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax )
diff --git a/framework/delibs/debase/deFloat16.h b/framework/delibs/debase/deFloat16.h
index 576b1b7..c43f92b 100644
--- a/framework/delibs/debase/deFloat16.h
+++ b/framework/delibs/debase/deFloat16.h
@@ -59,6 +59,37 @@
  * \return Converted 64-bit floating-point value.
  *//*--------------------------------------------------------------------*/
 double		deFloat16To64		(deFloat16 val16);
+
+DE_INLINE deBool deHalfIsPositiveZero(deFloat16 x)
+{
+	return deFloat16To32(x) == 0 && (x >> 15) == 0;
+}
+
+DE_INLINE deBool deHalfIsNegativeZero(deFloat16 x)
+{
+	return deFloat16To32(x) == 0 && (x >> 15) != 0;
+}
+
+static const deFloat16 deFloat16SignalingNaN = 0x7c01;
+static const deFloat16 deFloat16QuietNaN = 0x7e01;
+
+DE_INLINE deBool deHalfIsIEEENaN(deFloat16 x)
+{
+	deUint16 e = (x & 0x7c00u) >> 10;
+	deUint16 m = (x & 0x03ffu);
+	return e == 0x1f && m != 0;
+}
+
+DE_INLINE deBool deHalfIsSignalingNaN(deFloat16 x)
+{
+	return deHalfIsIEEENaN(x) && (x & (1u << 9)) == 0;
+}
+
+DE_INLINE deBool deHalfIsQuietNaN(deFloat16 x)
+{
+	return deHalfIsIEEENaN(x) && (x & (1u << 9)) != 0;
+}
+
 DE_END_EXTERN_C
 
 #endif /* _DEFLOAT16_H */
diff --git a/framework/delibs/debase/deMath.h b/framework/delibs/debase/deMath.h
index f9ea13e..cd926c5 100644
--- a/framework/delibs/debase/deMath.h
+++ b/framework/delibs/debase/deMath.h
@@ -24,6 +24,7 @@
  *//*--------------------------------------------------------------------*/
 
 #include "deDefs.h"
+#include "deMemory.h"
 
 #include <math.h>
 #include <float.h>
@@ -69,6 +70,82 @@
 DE_INLINE int		deIsInf				(double x)		{ return (x > DBL_MAX) - (x < -DBL_MAX); }
 DE_INLINE deBool	deIsNaN				(double x)		{ return (x != x); }
 
+DE_INLINE deUint32 deFloatBitsToUint32(float x)
+{
+	deUint32 bits;
+	deMemcpy((void *)&bits, (void *)&x, 4);
+	return bits;
+}
+
+DE_INLINE deUint64 deDoubleBitsToUint64(double x)
+{
+	deUint64 bits;
+	deMemcpy((void *)&bits, (void *)&x, 8);
+	return bits;
+}
+
+DE_INLINE deBool deFloatIsPositiveZero(float x)
+{
+	return x == 0 && (deFloatBitsToUint32(x) >> 31) == 0;
+}
+
+DE_INLINE deBool deDoubleIsPositiveZero(double x)
+{
+	return x == 0 && (deDoubleBitsToUint64(x) >> 63) == 0;
+}
+
+DE_INLINE deBool deFloatIsNegativeZero(float x)
+{
+	return x == 0 && (deFloatBitsToUint32(x) >> 31) != 0;
+}
+
+DE_INLINE deBool deDoubleIsNegativeZero(double x)
+{
+	return x == 0 && (deDoubleBitsToUint64(x) >> 63) != 0;
+}
+
+DE_INLINE deBool deFloatIsIEEENaN(float x)
+{
+	deUint32 e = (deFloatBitsToUint32(x) & 0x7f800000u) >> 23;
+	deUint32 m = (deFloatBitsToUint32(x) & 0x007fffffu);
+	return e == 0xff && m != 0;
+}
+
+DE_INLINE deBool deDoubleIsIEEENaN(double x)
+{
+	deUint64 e = (deDoubleBitsToUint64(x) & 0x7ff0000000000000ull) >> 52;
+	deUint64 m = (deDoubleBitsToUint64(x) & 0x000fffffffffffffull);
+	return e == 0x7ff && m != 0;
+}
+
+/* \note The definition used for signaling NaN here is valid for ARM and
+ * x86 but possibly not for other platforms.
+ *
+ * These are defined as overloads so that they can be used in templated
+ * code without risking a type conversion which would triggern an exception
+ * on a signaling NaN.  We don't use deIsNan in these helpers because they
+ * do a comparison operation which may also trigger exceptions.
+ */
+DE_INLINE deBool deFloatIsSignalingNaN(float x)
+{
+	return deFloatIsIEEENaN(x) && (deFloatBitsToUint32(x) & (1u << 22)) == 0;
+}
+
+DE_INLINE deBool deDoubleIsSignalingNaN(double x)
+{
+	return deDoubleIsIEEENaN(x) && (deDoubleBitsToUint64(x) & (1ull << 51)) == 0;
+}
+
+DE_INLINE deBool deFloatIsQuietNaN(float x)
+{
+	return deFloatIsIEEENaN(x) && (deFloatBitsToUint32(x) & (1u << 22)) != 0;
+}
+
+DE_INLINE deBool deDoubleIsQuietNaN(double x)
+{
+	return deDoubleIsIEEENaN(x) && (deDoubleBitsToUint64(x) & (1ull << 51)) != 0;
+}
+
 /* Basic utilities. */
 
 DE_INLINE float		deFloatAbs			(float x)						{ return (x >= 0.0f) ? x : -x; }
diff --git a/framework/delibs/decpp/CMakeLists.txt b/framework/delibs/decpp/CMakeLists.txt
index 4f20687..b9417c2 100644
--- a/framework/delibs/decpp/CMakeLists.txt
+++ b/framework/delibs/decpp/CMakeLists.txt
@@ -23,6 +23,7 @@
 	deDynamicLibrary.hpp
 	deFilePath.cpp
 	deFilePath.hpp
+	deMath.hpp
 	deMemPool.cpp
 	deMemPool.hpp
 	deMeta.cpp
diff --git a/framework/delibs/decpp/deMath.hpp b/framework/delibs/decpp/deMath.hpp
new file mode 100644
index 0000000..b213430
--- /dev/null
+++ b/framework/delibs/decpp/deMath.hpp
@@ -0,0 +1,90 @@
+#ifndef _DEMATH_HPP
+#define _DEMATH_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Base Portability Library
+ * -------------------------------------
+ *
+ * Copyright 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Basic mathematical operations.
+ *//*--------------------------------------------------------------------*/
+
+#include "deFloat16.h"
+#include "deMath.h"
+
+#include <limits>
+
+DE_INLINE double	deToDouble	(deFloat16 x)	{ return deFloat16To64(x); }
+DE_INLINE double	deToDouble	(float x)		{ return x; };
+DE_INLINE double	deToDouble	(double x)		{ return x; };
+
+template <typename T>
+inline T deToFloatType(double x)
+{
+	return static_cast<T>(x);
+}
+
+template <>
+inline deFloat16 deToFloatType<deFloat16>(double x)
+{
+	return deFloat64To16(x);
+}
+
+// These helpers make the C helpers usable from templates.  Because some of
+// these deal with signaling NaN, it's important that no implicit float
+// conversion operations happen.
+DE_INLINE deBool	deIsPositiveZero	(deFloat16 x)	{ return deHalfIsPositiveZero(x); };
+DE_INLINE deBool	deIsPositiveZero	(float x)		{ return deFloatIsPositiveZero(x); };
+DE_INLINE deBool	deIsPositiveZero	(double x)		{ return deDoubleIsPositiveZero(x); };
+DE_INLINE deBool	deIsNegativeZero	(deFloat16 x)	{ return deHalfIsNegativeZero(x); };
+DE_INLINE deBool	deIsNegativeZero	(float x)		{ return deFloatIsNegativeZero(x); };
+DE_INLINE deBool	deIsNegativeZero	(double x)		{ return deDoubleIsNegativeZero(x); };
+DE_INLINE deBool	deIsIEEENaN			(deFloat16 x)	{ return deHalfIsIEEENaN(x); };
+DE_INLINE deBool	deIsIEEENaN			(float x)		{ return deFloatIsIEEENaN(x); };
+DE_INLINE deBool	deIsIEEENaN			(double x)		{ return deDoubleIsIEEENaN(x); };
+DE_INLINE deBool	deIsSignalingNaN	(deFloat16 x)	{ return deHalfIsSignalingNaN(x); };
+DE_INLINE deBool	deIsSignalingNaN	(float x)		{ return deFloatIsSignalingNaN(x); };
+DE_INLINE deBool	deIsSignalingNaN	(double x)		{ return deDoubleIsSignalingNaN(x); };
+DE_INLINE deBool	deIsQuietNaN		(deFloat16 x)	{ return deHalfIsQuietNaN(x); };
+DE_INLINE deBool	deIsQuietNaN		(float x)		{ return deFloatIsQuietNaN(x); };
+DE_INLINE deBool	deIsQuietNaN		(double x)		{ return deDoubleIsQuietNaN(x); };
+
+template<typename T>
+inline T deQuietNaN()
+{
+	return std::numeric_limits<T>::quiet_NaN();
+}
+
+template<>
+inline deFloat16 deQuietNaN<deFloat16>()
+{
+	return deFloat16QuietNaN;
+}
+
+template<typename T>
+inline T deSignalingNaN()
+{
+	return std::numeric_limits<T>::signaling_NaN();
+}
+
+template<>
+inline deFloat16 deSignalingNaN<deFloat16>()
+{
+	return deFloat16SignalingNaN;
+}
+
+#endif // _DEMATH_HPP