Check NaN support in double comparison tests
authorRicardo Garcia <rgarcia@igalia.com>
Wed, 23 Oct 2019 16:38:45 +0000 (18:38 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 1 Nov 2019 11:55:27 +0000 (07:55 -0400)
This commit makes sure NaNs are supported in shaders before using them
in double comparison tests, activating the needed extensions and
capabilities.

Affected and new tests:
dEQP-VK.spirv_assembly.instruction.*.64bit_compare.*

Components: Vulkan
VK-GL-CTS issue: 2066

Change-Id: I3d4d344a0fdaa574d7653d30d1ddc248eda0047e

android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsm64bitCompareTests.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt

index cafc4cf..154a0ca 100644 (file)
@@ -275886,30 +275886,54 @@ dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_no_stride
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_bad_stride
 dEQP-VK.spirv_assembly.instruction.compute.hlsl_cases.cbuffer_packing
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opiequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opslessthan_single
@@ -288360,54 +288384,102 @@ dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_frag
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opiequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opslessthan_single
index 512f68b..2b1aedb 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "vktSpvAsm64bitCompareTests.hpp"
 #include "vktTestGroupUtil.hpp"
+#include "vktSpvAsmUtils.hpp"
 #include "vkDefs.hpp"
 #include "vktTestCase.hpp"
 #include "vkQueryUtil.hpp"
@@ -203,6 +204,7 @@ struct TestParameters
        const CompareOperation<T>&      operation;
        vk::VkShaderStageFlagBits       stage;
        const OperandsVector<T>&        operands;
+       bool                                            requireNanPreserve;
 };
 
 // Shader template for the compute stage using single scalars.
@@ -225,9 +227,12 @@ void main()
 const tcu::StringTemplate CompShaderSingle(R"(
                         OpCapability Shader
                         ${OPCAPABILITY}
+                        ${NANCAP}
+                        ${NANEXT}
                    %1 = OpExtInstImport "GLSL.std.450"
                         OpMemoryModel Logical GLSL450
                         OpEntryPoint GLCompute %main "main"
+                        ${NANMODE}
                         OpExecutionMode %main LocalSize 1 1 1
                         OpName %main "main"
                         OpName %i "i"
@@ -334,9 +339,12 @@ void main()
 const tcu::StringTemplate CompShaderVector(R"(
                           OpCapability Shader
                           ${OPCAPABILITY}
+                          ${NANCAP}
+                          ${NANEXT}
                      %1 = OpExtInstImport "GLSL.std.450"
                           OpMemoryModel Logical GLSL450
                           OpEntryPoint GLCompute %main "main"
+                          ${NANMODE}
                           OpExecutionMode %main LocalSize 1 1 1
                           OpName %main "main"
                           OpName %i "i"
@@ -450,9 +458,12 @@ void main()
 const tcu::StringTemplate VertShaderSingle(R"(
                             OpCapability Shader
                             ${OPCAPABILITY}
+                            ${NANCAP}
+                            ${NANEXT}
                        %1 = OpExtInstImport "GLSL.std.450"
                             OpMemoryModel Logical GLSL450
                             OpEntryPoint Vertex %main "main" %_
+                            ${NANMODE}
                             OpName %main "main"
                             OpName %gl_PerVertex "gl_PerVertex"
                             OpMemberName %gl_PerVertex 0 "gl_Position"
@@ -587,9 +598,12 @@ void main()
 const tcu::StringTemplate VertShaderVector(R"(
                             OpCapability Shader
                             ${OPCAPABILITY}
+                            ${NANCAP}
+                            ${NANEXT}
                        %1 = OpExtInstImport "GLSL.std.450"
                             OpMemoryModel Logical GLSL450
                             OpEntryPoint Vertex %main "main" %_
+                            ${NANMODE}
                             OpName %main "main"
                             OpName %gl_PerVertex "gl_PerVertex"
                             OpMemberName %gl_PerVertex 0 "gl_Position"
@@ -739,9 +753,12 @@ void main()
 const tcu::StringTemplate FragShaderSingle(R"(
                         OpCapability Shader
                         ${OPCAPABILITY}
+                        ${NANCAP}
+                        ${NANEXT}
                    %1 = OpExtInstImport "GLSL.std.450"
                         OpMemoryModel Logical GLSL450
                         OpEntryPoint Fragment %main "main"
+                        ${NANMODE}
                         OpExecutionMode %main OriginUpperLeft
                         OpSource GLSL 430
                         OpName %main "main"
@@ -849,9 +866,12 @@ void main()
 const tcu::StringTemplate FragShaderVector(R"(
                           OpCapability Shader
                           ${OPCAPABILITY}
+                          ${NANCAP}
+                          ${NANEXT}
                      %1 = OpExtInstImport "GLSL.std.450"
                           OpMemoryModel Logical GLSL450
                           OpEntryPoint Fragment %main "main"
+                          ${NANMODE}
                           OpExecutionMode %main OriginUpperLeft
                           OpName %main "main"
                           OpName %i "i"
@@ -972,6 +992,11 @@ struct SpirvTemplateManager
        // Same.
        template <class T>
        static std::string getOpType();
+
+       // Return the capabilities, extensions and execution modes for NaN preservation.
+       static std::string getNanCapability     (bool preserve);
+       static std::string getNanExtension      (bool preserve);
+       static std::string getNanExeMode        (bool preserve);
 };
 
 template <> std::string SpirvTemplateManager::getOpCapability<double>()                { return "OpCapability Float64";        }
@@ -982,6 +1007,21 @@ template <> std::string SpirvTemplateManager::getOpType<double>() { return "OpTy
 template <> std::string SpirvTemplateManager::getOpType<deInt64>()     { return "OpTypeInt 64 1";      }
 template <> std::string SpirvTemplateManager::getOpType<deUint64>()    { return "OpTypeInt 64 0";      }
 
+std::string SpirvTemplateManager::getNanCapability (bool preserve)
+{
+       return (preserve ? "OpCapability SignedZeroInfNanPreserve" : "");
+}
+
+std::string SpirvTemplateManager::getNanExtension (bool preserve)
+{
+       return (preserve ? "OpExtension \"SPV_KHR_float_controls\"" : "");
+}
+
+std::string SpirvTemplateManager::getNanExeMode (bool preserve)
+{
+       return (preserve ? "OpExecutionMode %main SignedZeroInfNanPreserve 64" : "");
+}
+
 struct BufferWithMemory
 {
        vk::Move<vk::VkBuffer>          buffer;
@@ -1138,6 +1178,18 @@ T64bitCompareTestInstance<T>::T64bitCompareTestInstance (Context& ctx, const Tes
 {
 }
 
+template<class T>
+bool genericIsNan (T)
+{
+       return false;
+}
+
+template<>
+bool genericIsNan<double> (double value)
+{
+       return std::isnan(value);
+}
+
 template <class T>
 tcu::TestStatus T64bitCompareTestInstance<T>::iterate (void)
 {
@@ -1584,7 +1636,7 @@ tcu::TestStatus T64bitCompareTestInstance<T>::iterate (void)
        for (size_t i = 0; i < m_numOperations; ++i)
        {
                int expected = static_cast<int>(m_params.operation.run(m_params.operands[i].first, m_params.operands[i].second));
-               if (results[i] != expected)
+               if (results[i] != expected && (m_params.requireNanPreserve || (!genericIsNan<T>(m_params.operands[i].first) && !genericIsNan<T>(m_params.operands[i].second))))
                {
                        std::ostringstream msg;
                        msg << "Invalid result found in position " << i << ": expected " << expected << " and found " << results[i];
@@ -1670,6 +1722,13 @@ void T64bitCompareTest<T>::checkSupport (Context& context) const
        default:
                DE_ASSERT(DE_NULL == "Invalid shader stage specified");
        }
+
+       ExtensionFloatControlsFeatures fcFeatures;
+       deMemset(&fcFeatures, 0, sizeof(fcFeatures));
+       fcFeatures.shaderSignedZeroInfNanPreserveFloat64 = VK_TRUE;
+
+       if (m_params.requireNanPreserve && !isFloatControlsFeaturesSupported(context, fcFeatures))
+               TCU_THROW(NotSupportedError, "NaN preservation not supported");
 }
 
 template <class T>
@@ -1684,6 +1743,9 @@ void T64bitCompareTest<T>::initPrograms (vk::SourceCollections& programCollectio
        replacements["OPNAME"]                  = m_params.operation.spirvName();
        replacements["OPCAPABILITY"]    = SpirvTemplateManager::getOpCapability<T>();
        replacements["OPTYPE"]                  = SpirvTemplateManager::getOpType<T>();
+       replacements["NANCAP"]                  = SpirvTemplateManager::getNanCapability(m_params.requireNanPreserve);
+       replacements["NANEXT"]                  = SpirvTemplateManager::getNanExtension(m_params.requireNanPreserve);
+       replacements["NANMODE"]                 = SpirvTemplateManager::getNanExeMode(m_params.requireNanPreserve);
 
        static const std::map<vk::VkShaderStageFlagBits, std::string>   sourceNames                     =
        {
@@ -1706,7 +1768,13 @@ TestInstance* T64bitCompareTest<T>::createInstance (Context& ctx) const
        return new T64bitCompareTestInstance<T>(ctx, m_params);
 }
 
-const std::map<DataType, std::string> dataTypeName =
+const std::map<bool, std::string>              requireNanName =
+{
+       std::make_pair( false,  "nonan"         ),
+       std::make_pair( true,   "withnan"       ),
+};
+
+const std::map<DataType, std::string>  dataTypeName =
 {
        std::make_pair(DATA_TYPE_SINGLE, "single"),
        std::make_pair(DATA_TYPE_VECTOR, "vector"),
@@ -1736,10 +1804,11 @@ void createDoubleCompareTestsInGroup (tcu::TestCaseGroup* tests, const StageName
 
        for (const auto&        stageNamePair   : *stageNames)
        for (const auto&        typeNamePair    : dataTypeName)
+       for (const auto&        requireNanPair  : requireNanName)
        for (const auto         opPtr                   : operationList)
        {
-               TestParameters<double>  params          = { typeNamePair.first, *opPtr, stageNamePair.first, DOUBLE_OPERANDS };
-               std::string                             testName        = stageNamePair.second + "_" + de::toLower(opPtr->spirvName()) + "_" + typeNamePair.second;
+               TestParameters<double>  params          = { typeNamePair.first, *opPtr, stageNamePair.first, DOUBLE_OPERANDS, requireNanPair.first };
+               std::string                             testName        = stageNamePair.second + "_" + de::toLower(opPtr->spirvName()) + "_" + requireNanPair.second + "_" + typeNamePair.second;
                tests->addChild(new T64bitCompareTest<double>(tests->getTestContext(), testName, "", params));
        }
 }
@@ -1760,7 +1829,7 @@ void createInt64CompareTestsInGroup (tcu::TestCaseGroup* tests, const StageName*
        for (const auto&        typeNamePair    : dataTypeName)
        for (const auto         opPtr                   : operationList)
        {
-               TestParameters<deInt64> params          = { typeNamePair.first, *opPtr, stageNamePair.first, INT64_OPERANDS };
+               TestParameters<deInt64> params          = { typeNamePair.first, *opPtr, stageNamePair.first, INT64_OPERANDS, false };
                std::string                             testName        = stageNamePair.second + "_" + de::toLower(opPtr->spirvName()) + "_" + typeNamePair.second;
                tests->addChild(new T64bitCompareTest<deInt64>(tests->getTestContext(), testName, "", params));
        }
@@ -1782,7 +1851,7 @@ void createUint64CompareTestsInGroup (tcu::TestCaseGroup* tests, const StageName
        for (const auto&        typeNamePair    : dataTypeName)
        for (const auto         opPtr                   : operationList)
        {
-               TestParameters<deUint64>        params          = { typeNamePair.first, *opPtr, stageNamePair.first, UINT64_OPERANDS };
+               TestParameters<deUint64>        params          = { typeNamePair.first, *opPtr, stageNamePair.first, UINT64_OPERANDS, false };
                std::string                                     testName        = stageNamePair.second + "_" + de::toLower(opPtr->spirvName()) + "_" + typeNamePair.second;
                tests->addChild(new T64bitCompareTest<deUint64>(tests->getTestContext(), testName, "", params));
        }
index fa71332..0f509a8 100644 (file)
@@ -275781,30 +275781,54 @@ dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_no_stride
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_bad_stride
 dEQP-VK.spirv_assembly.instruction.compute.hlsl_cases.cbuffer_packing
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opiequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opslessthan_single
@@ -288265,54 +288289,102 @@ dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_frag
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opiequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opslessthan_single
index 92fa1f3..b2d399a 100644 (file)
@@ -275781,30 +275781,54 @@ dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_no_stride
 dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.workgroup_bad_stride
 dEQP-VK.spirv_assembly.instruction.compute.hlsl_cases.cbuffer_packing
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.double.comp_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opiequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.int64.comp_opslessthan_single
@@ -288265,54 +288289,102 @@ dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_tesse
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_frag
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_single
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_vector
-dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.vert_opfunordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_single
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_nonan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordgreaterthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordnotequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordlessthanequal_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthan_withnan_vector
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfunordgreaterthanequal_withnan_vector
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opiequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opinotequal_single
 dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.int64.vert_opslessthan_single