diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 48b190aa5a0191ca6dfcd7dbbcbee7bc8fc91fa2..7fe99e253002cdc34411bf83aeb4b3d0efc241ea 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -13,7 +13,7 @@ local_size = (1, 1, 1) 0:21 all ( temp bool) 0:21 Convert float to bool ( temp bool) 0:21 'inF0' ( in float) -0:24 AtomicAdd ( temp void) +0:24 AtomicAdd ( temp uint) 0:24 'gs_ua' ( shared uint) 0:24 'gs_ub' ( shared uint) 0:25 move second child to first child ( temp uint) @@ -21,7 +21,7 @@ local_size = (1, 1, 1) 0:25 AtomicAdd ( temp uint) 0:25 'gs_ua' ( shared uint) 0:25 'gs_ub' ( shared uint) -0:26 AtomicAnd ( temp void) +0:26 AtomicAnd ( temp uint) 0:26 'gs_ua' ( shared uint) 0:26 'gs_ub' ( shared uint) 0:27 move second child to first child ( temp uint) @@ -40,7 +40,7 @@ local_size = (1, 1, 1) 0:29 AtomicExchange ( temp uint) 0:29 'gs_ua' ( shared uint) 0:29 'gs_ub' ( shared uint) -0:30 AtomicMax ( temp void) +0:30 AtomicMax ( temp uint) 0:30 'gs_ua' ( shared uint) 0:30 'gs_ub' ( shared uint) 0:31 move second child to first child ( temp uint) @@ -48,7 +48,7 @@ local_size = (1, 1, 1) 0:31 AtomicMax ( temp uint) 0:31 'gs_ua' ( shared uint) 0:31 'gs_ub' ( shared uint) -0:32 AtomicMin ( temp void) +0:32 AtomicMin ( temp uint) 0:32 'gs_ua' ( shared uint) 0:32 'gs_ub' ( shared uint) 0:33 move second child to first child ( temp uint) @@ -56,7 +56,7 @@ local_size = (1, 1, 1) 0:33 AtomicMin ( temp uint) 0:33 'gs_ua' ( shared uint) 0:33 'gs_ub' ( shared uint) -0:34 AtomicOr ( temp void) +0:34 AtomicOr ( temp uint) 0:34 'gs_ua' ( shared uint) 0:34 'gs_ub' ( shared uint) 0:35 move second child to first child ( temp uint) @@ -64,7 +64,7 @@ local_size = (1, 1, 1) 0:35 AtomicOr ( temp uint) 0:35 'gs_ua' ( shared uint) 0:35 'gs_ub' ( shared uint) -0:36 AtomicXor ( temp void) +0:36 AtomicXor ( temp uint) 0:36 'gs_ua' ( shared uint) 0:36 'gs_ub' ( shared uint) 0:37 move second child to first child ( temp uint) @@ -95,7 +95,7 @@ local_size = (1, 1, 1) 0:55 all ( temp bool) 0:55 Convert float to bool ( temp 2-component vector of bool) 0:55 'inF0' ( in 2-component vector of float) -0:58 AtomicAdd ( temp void) +0:58 AtomicAdd ( temp 2-component vector of uint) 0:58 'gs_ua2' ( shared 2-component vector of uint) 0:58 'gs_ub2' ( shared 2-component vector of uint) 0:59 move second child to first child ( temp 2-component vector of uint) @@ -103,7 +103,7 @@ local_size = (1, 1, 1) 0:59 AtomicAdd ( temp 2-component vector of uint) 0:59 'gs_ua2' ( shared 2-component vector of uint) 0:59 'gs_ub2' ( shared 2-component vector of uint) -0:60 AtomicAnd ( temp void) +0:60 AtomicAnd ( temp 2-component vector of uint) 0:60 'gs_ua2' ( shared 2-component vector of uint) 0:60 'gs_ub2' ( shared 2-component vector of uint) 0:61 move second child to first child ( temp 2-component vector of uint) @@ -122,7 +122,7 @@ local_size = (1, 1, 1) 0:63 AtomicExchange ( temp 2-component vector of uint) 0:63 'gs_ua2' ( shared 2-component vector of uint) 0:63 'gs_ub2' ( shared 2-component vector of uint) -0:64 AtomicMax ( temp void) +0:64 AtomicMax ( temp 2-component vector of uint) 0:64 'gs_ua2' ( shared 2-component vector of uint) 0:64 'gs_ub2' ( shared 2-component vector of uint) 0:65 move second child to first child ( temp 2-component vector of uint) @@ -130,7 +130,7 @@ local_size = (1, 1, 1) 0:65 AtomicMax ( temp 2-component vector of uint) 0:65 'gs_ua2' ( shared 2-component vector of uint) 0:65 'gs_ub2' ( shared 2-component vector of uint) -0:66 AtomicMin ( temp void) +0:66 AtomicMin ( temp 2-component vector of uint) 0:66 'gs_ua2' ( shared 2-component vector of uint) 0:66 'gs_ub2' ( shared 2-component vector of uint) 0:67 move second child to first child ( temp 2-component vector of uint) @@ -138,7 +138,7 @@ local_size = (1, 1, 1) 0:67 AtomicMin ( temp 2-component vector of uint) 0:67 'gs_ua2' ( shared 2-component vector of uint) 0:67 'gs_ub2' ( shared 2-component vector of uint) -0:68 AtomicOr ( temp void) +0:68 AtomicOr ( temp 2-component vector of uint) 0:68 'gs_ua2' ( shared 2-component vector of uint) 0:68 'gs_ub2' ( shared 2-component vector of uint) 0:69 move second child to first child ( temp 2-component vector of uint) @@ -146,7 +146,7 @@ local_size = (1, 1, 1) 0:69 AtomicOr ( temp 2-component vector of uint) 0:69 'gs_ua2' ( shared 2-component vector of uint) 0:69 'gs_ub2' ( shared 2-component vector of uint) -0:70 AtomicXor ( temp void) +0:70 AtomicXor ( temp 2-component vector of uint) 0:70 'gs_ua2' ( shared 2-component vector of uint) 0:70 'gs_ub2' ( shared 2-component vector of uint) 0:71 move second child to first child ( temp 2-component vector of uint) @@ -169,7 +169,7 @@ local_size = (1, 1, 1) 0:82 all ( temp bool) 0:82 Convert float to bool ( temp 3-component vector of bool) 0:82 'inF0' ( in 3-component vector of float) -0:85 AtomicAdd ( temp void) +0:85 AtomicAdd ( temp 3-component vector of uint) 0:85 'gs_ua3' ( shared 3-component vector of uint) 0:85 'gs_ub3' ( shared 3-component vector of uint) 0:86 move second child to first child ( temp 3-component vector of uint) @@ -177,7 +177,7 @@ local_size = (1, 1, 1) 0:86 AtomicAdd ( temp 3-component vector of uint) 0:86 'gs_ua3' ( shared 3-component vector of uint) 0:86 'gs_ub3' ( shared 3-component vector of uint) -0:87 AtomicAnd ( temp void) +0:87 AtomicAnd ( temp 3-component vector of uint) 0:87 'gs_ua3' ( shared 3-component vector of uint) 0:87 'gs_ub3' ( shared 3-component vector of uint) 0:88 move second child to first child ( temp 3-component vector of uint) @@ -196,7 +196,7 @@ local_size = (1, 1, 1) 0:90 AtomicExchange ( temp 3-component vector of uint) 0:90 'gs_ua3' ( shared 3-component vector of uint) 0:90 'gs_ub3' ( shared 3-component vector of uint) -0:91 AtomicMax ( temp void) +0:91 AtomicMax ( temp 3-component vector of uint) 0:91 'gs_ua3' ( shared 3-component vector of uint) 0:91 'gs_ub3' ( shared 3-component vector of uint) 0:92 move second child to first child ( temp 3-component vector of uint) @@ -204,7 +204,7 @@ local_size = (1, 1, 1) 0:92 AtomicMax ( temp 3-component vector of uint) 0:92 'gs_ua3' ( shared 3-component vector of uint) 0:92 'gs_ub3' ( shared 3-component vector of uint) -0:93 AtomicMin ( temp void) +0:93 AtomicMin ( temp 3-component vector of uint) 0:93 'gs_ua3' ( shared 3-component vector of uint) 0:93 'gs_ub3' ( shared 3-component vector of uint) 0:94 move second child to first child ( temp 3-component vector of uint) @@ -212,7 +212,7 @@ local_size = (1, 1, 1) 0:94 AtomicMin ( temp 3-component vector of uint) 0:94 'gs_ua3' ( shared 3-component vector of uint) 0:94 'gs_ub3' ( shared 3-component vector of uint) -0:95 AtomicOr ( temp void) +0:95 AtomicOr ( temp 3-component vector of uint) 0:95 'gs_ua3' ( shared 3-component vector of uint) 0:95 'gs_ub3' ( shared 3-component vector of uint) 0:96 move second child to first child ( temp 3-component vector of uint) @@ -220,7 +220,7 @@ local_size = (1, 1, 1) 0:96 AtomicOr ( temp 3-component vector of uint) 0:96 'gs_ua3' ( shared 3-component vector of uint) 0:96 'gs_ub3' ( shared 3-component vector of uint) -0:97 AtomicXor ( temp void) +0:97 AtomicXor ( temp 3-component vector of uint) 0:97 'gs_ua3' ( shared 3-component vector of uint) 0:97 'gs_ub3' ( shared 3-component vector of uint) 0:98 move second child to first child ( temp 3-component vector of uint) @@ -244,7 +244,7 @@ local_size = (1, 1, 1) 0:109 all ( temp bool) 0:109 Convert float to bool ( temp 4-component vector of bool) 0:109 'inF0' ( in 4-component vector of float) -0:112 AtomicAdd ( temp void) +0:112 AtomicAdd ( temp 4-component vector of uint) 0:112 'gs_ua4' ( shared 4-component vector of uint) 0:112 'gs_ub4' ( shared 4-component vector of uint) 0:113 move second child to first child ( temp 4-component vector of uint) @@ -252,7 +252,7 @@ local_size = (1, 1, 1) 0:113 AtomicAdd ( temp 4-component vector of uint) 0:113 'gs_ua4' ( shared 4-component vector of uint) 0:113 'gs_ub4' ( shared 4-component vector of uint) -0:114 AtomicAnd ( temp void) +0:114 AtomicAnd ( temp 4-component vector of uint) 0:114 'gs_ua4' ( shared 4-component vector of uint) 0:114 'gs_ub4' ( shared 4-component vector of uint) 0:115 move second child to first child ( temp 4-component vector of uint) @@ -271,7 +271,7 @@ local_size = (1, 1, 1) 0:117 AtomicExchange ( temp 4-component vector of uint) 0:117 'gs_ua4' ( shared 4-component vector of uint) 0:117 'gs_ub4' ( shared 4-component vector of uint) -0:118 AtomicMax ( temp void) +0:118 AtomicMax ( temp 4-component vector of uint) 0:118 'gs_ua4' ( shared 4-component vector of uint) 0:118 'gs_ub4' ( shared 4-component vector of uint) 0:119 move second child to first child ( temp 4-component vector of uint) @@ -279,7 +279,7 @@ local_size = (1, 1, 1) 0:119 AtomicMax ( temp 4-component vector of uint) 0:119 'gs_ua4' ( shared 4-component vector of uint) 0:119 'gs_ub4' ( shared 4-component vector of uint) -0:120 AtomicMin ( temp void) +0:120 AtomicMin ( temp 4-component vector of uint) 0:120 'gs_ua4' ( shared 4-component vector of uint) 0:120 'gs_ub4' ( shared 4-component vector of uint) 0:121 move second child to first child ( temp 4-component vector of uint) @@ -287,7 +287,7 @@ local_size = (1, 1, 1) 0:121 AtomicMin ( temp 4-component vector of uint) 0:121 'gs_ua4' ( shared 4-component vector of uint) 0:121 'gs_ub4' ( shared 4-component vector of uint) -0:122 AtomicOr ( temp void) +0:122 AtomicOr ( temp 4-component vector of uint) 0:122 'gs_ua4' ( shared 4-component vector of uint) 0:122 'gs_ub4' ( shared 4-component vector of uint) 0:123 move second child to first child ( temp 4-component vector of uint) @@ -295,7 +295,7 @@ local_size = (1, 1, 1) 0:123 AtomicOr ( temp 4-component vector of uint) 0:123 'gs_ua4' ( shared 4-component vector of uint) 0:123 'gs_ub4' ( shared 4-component vector of uint) -0:124 AtomicXor ( temp void) +0:124 AtomicXor ( temp 4-component vector of uint) 0:124 'gs_ua4' ( shared 4-component vector of uint) 0:124 'gs_ub4' ( shared 4-component vector of uint) 0:125 move second child to first child ( temp 4-component vector of uint) @@ -373,7 +373,7 @@ local_size = (1, 1, 1) 0:21 all ( temp bool) 0:21 Convert float to bool ( temp bool) 0:21 'inF0' ( in float) -0:24 AtomicAdd ( temp void) +0:24 AtomicAdd ( temp uint) 0:24 'gs_ua' ( shared uint) 0:24 'gs_ub' ( shared uint) 0:25 move second child to first child ( temp uint) @@ -381,7 +381,7 @@ local_size = (1, 1, 1) 0:25 AtomicAdd ( temp uint) 0:25 'gs_ua' ( shared uint) 0:25 'gs_ub' ( shared uint) -0:26 AtomicAnd ( temp void) +0:26 AtomicAnd ( temp uint) 0:26 'gs_ua' ( shared uint) 0:26 'gs_ub' ( shared uint) 0:27 move second child to first child ( temp uint) @@ -400,7 +400,7 @@ local_size = (1, 1, 1) 0:29 AtomicExchange ( temp uint) 0:29 'gs_ua' ( shared uint) 0:29 'gs_ub' ( shared uint) -0:30 AtomicMax ( temp void) +0:30 AtomicMax ( temp uint) 0:30 'gs_ua' ( shared uint) 0:30 'gs_ub' ( shared uint) 0:31 move second child to first child ( temp uint) @@ -408,7 +408,7 @@ local_size = (1, 1, 1) 0:31 AtomicMax ( temp uint) 0:31 'gs_ua' ( shared uint) 0:31 'gs_ub' ( shared uint) -0:32 AtomicMin ( temp void) +0:32 AtomicMin ( temp uint) 0:32 'gs_ua' ( shared uint) 0:32 'gs_ub' ( shared uint) 0:33 move second child to first child ( temp uint) @@ -416,7 +416,7 @@ local_size = (1, 1, 1) 0:33 AtomicMin ( temp uint) 0:33 'gs_ua' ( shared uint) 0:33 'gs_ub' ( shared uint) -0:34 AtomicOr ( temp void) +0:34 AtomicOr ( temp uint) 0:34 'gs_ua' ( shared uint) 0:34 'gs_ub' ( shared uint) 0:35 move second child to first child ( temp uint) @@ -424,7 +424,7 @@ local_size = (1, 1, 1) 0:35 AtomicOr ( temp uint) 0:35 'gs_ua' ( shared uint) 0:35 'gs_ub' ( shared uint) -0:36 AtomicXor ( temp void) +0:36 AtomicXor ( temp uint) 0:36 'gs_ua' ( shared uint) 0:36 'gs_ub' ( shared uint) 0:37 move second child to first child ( temp uint) @@ -455,7 +455,7 @@ local_size = (1, 1, 1) 0:55 all ( temp bool) 0:55 Convert float to bool ( temp 2-component vector of bool) 0:55 'inF0' ( in 2-component vector of float) -0:58 AtomicAdd ( temp void) +0:58 AtomicAdd ( temp 2-component vector of uint) 0:58 'gs_ua2' ( shared 2-component vector of uint) 0:58 'gs_ub2' ( shared 2-component vector of uint) 0:59 move second child to first child ( temp 2-component vector of uint) @@ -463,7 +463,7 @@ local_size = (1, 1, 1) 0:59 AtomicAdd ( temp 2-component vector of uint) 0:59 'gs_ua2' ( shared 2-component vector of uint) 0:59 'gs_ub2' ( shared 2-component vector of uint) -0:60 AtomicAnd ( temp void) +0:60 AtomicAnd ( temp 2-component vector of uint) 0:60 'gs_ua2' ( shared 2-component vector of uint) 0:60 'gs_ub2' ( shared 2-component vector of uint) 0:61 move second child to first child ( temp 2-component vector of uint) @@ -482,7 +482,7 @@ local_size = (1, 1, 1) 0:63 AtomicExchange ( temp 2-component vector of uint) 0:63 'gs_ua2' ( shared 2-component vector of uint) 0:63 'gs_ub2' ( shared 2-component vector of uint) -0:64 AtomicMax ( temp void) +0:64 AtomicMax ( temp 2-component vector of uint) 0:64 'gs_ua2' ( shared 2-component vector of uint) 0:64 'gs_ub2' ( shared 2-component vector of uint) 0:65 move second child to first child ( temp 2-component vector of uint) @@ -490,7 +490,7 @@ local_size = (1, 1, 1) 0:65 AtomicMax ( temp 2-component vector of uint) 0:65 'gs_ua2' ( shared 2-component vector of uint) 0:65 'gs_ub2' ( shared 2-component vector of uint) -0:66 AtomicMin ( temp void) +0:66 AtomicMin ( temp 2-component vector of uint) 0:66 'gs_ua2' ( shared 2-component vector of uint) 0:66 'gs_ub2' ( shared 2-component vector of uint) 0:67 move second child to first child ( temp 2-component vector of uint) @@ -498,7 +498,7 @@ local_size = (1, 1, 1) 0:67 AtomicMin ( temp 2-component vector of uint) 0:67 'gs_ua2' ( shared 2-component vector of uint) 0:67 'gs_ub2' ( shared 2-component vector of uint) -0:68 AtomicOr ( temp void) +0:68 AtomicOr ( temp 2-component vector of uint) 0:68 'gs_ua2' ( shared 2-component vector of uint) 0:68 'gs_ub2' ( shared 2-component vector of uint) 0:69 move second child to first child ( temp 2-component vector of uint) @@ -506,7 +506,7 @@ local_size = (1, 1, 1) 0:69 AtomicOr ( temp 2-component vector of uint) 0:69 'gs_ua2' ( shared 2-component vector of uint) 0:69 'gs_ub2' ( shared 2-component vector of uint) -0:70 AtomicXor ( temp void) +0:70 AtomicXor ( temp 2-component vector of uint) 0:70 'gs_ua2' ( shared 2-component vector of uint) 0:70 'gs_ub2' ( shared 2-component vector of uint) 0:71 move second child to first child ( temp 2-component vector of uint) @@ -529,7 +529,7 @@ local_size = (1, 1, 1) 0:82 all ( temp bool) 0:82 Convert float to bool ( temp 3-component vector of bool) 0:82 'inF0' ( in 3-component vector of float) -0:85 AtomicAdd ( temp void) +0:85 AtomicAdd ( temp 3-component vector of uint) 0:85 'gs_ua3' ( shared 3-component vector of uint) 0:85 'gs_ub3' ( shared 3-component vector of uint) 0:86 move second child to first child ( temp 3-component vector of uint) @@ -537,7 +537,7 @@ local_size = (1, 1, 1) 0:86 AtomicAdd ( temp 3-component vector of uint) 0:86 'gs_ua3' ( shared 3-component vector of uint) 0:86 'gs_ub3' ( shared 3-component vector of uint) -0:87 AtomicAnd ( temp void) +0:87 AtomicAnd ( temp 3-component vector of uint) 0:87 'gs_ua3' ( shared 3-component vector of uint) 0:87 'gs_ub3' ( shared 3-component vector of uint) 0:88 move second child to first child ( temp 3-component vector of uint) @@ -556,7 +556,7 @@ local_size = (1, 1, 1) 0:90 AtomicExchange ( temp 3-component vector of uint) 0:90 'gs_ua3' ( shared 3-component vector of uint) 0:90 'gs_ub3' ( shared 3-component vector of uint) -0:91 AtomicMax ( temp void) +0:91 AtomicMax ( temp 3-component vector of uint) 0:91 'gs_ua3' ( shared 3-component vector of uint) 0:91 'gs_ub3' ( shared 3-component vector of uint) 0:92 move second child to first child ( temp 3-component vector of uint) @@ -564,7 +564,7 @@ local_size = (1, 1, 1) 0:92 AtomicMax ( temp 3-component vector of uint) 0:92 'gs_ua3' ( shared 3-component vector of uint) 0:92 'gs_ub3' ( shared 3-component vector of uint) -0:93 AtomicMin ( temp void) +0:93 AtomicMin ( temp 3-component vector of uint) 0:93 'gs_ua3' ( shared 3-component vector of uint) 0:93 'gs_ub3' ( shared 3-component vector of uint) 0:94 move second child to first child ( temp 3-component vector of uint) @@ -572,7 +572,7 @@ local_size = (1, 1, 1) 0:94 AtomicMin ( temp 3-component vector of uint) 0:94 'gs_ua3' ( shared 3-component vector of uint) 0:94 'gs_ub3' ( shared 3-component vector of uint) -0:95 AtomicOr ( temp void) +0:95 AtomicOr ( temp 3-component vector of uint) 0:95 'gs_ua3' ( shared 3-component vector of uint) 0:95 'gs_ub3' ( shared 3-component vector of uint) 0:96 move second child to first child ( temp 3-component vector of uint) @@ -580,7 +580,7 @@ local_size = (1, 1, 1) 0:96 AtomicOr ( temp 3-component vector of uint) 0:96 'gs_ua3' ( shared 3-component vector of uint) 0:96 'gs_ub3' ( shared 3-component vector of uint) -0:97 AtomicXor ( temp void) +0:97 AtomicXor ( temp 3-component vector of uint) 0:97 'gs_ua3' ( shared 3-component vector of uint) 0:97 'gs_ub3' ( shared 3-component vector of uint) 0:98 move second child to first child ( temp 3-component vector of uint) @@ -604,7 +604,7 @@ local_size = (1, 1, 1) 0:109 all ( temp bool) 0:109 Convert float to bool ( temp 4-component vector of bool) 0:109 'inF0' ( in 4-component vector of float) -0:112 AtomicAdd ( temp void) +0:112 AtomicAdd ( temp 4-component vector of uint) 0:112 'gs_ua4' ( shared 4-component vector of uint) 0:112 'gs_ub4' ( shared 4-component vector of uint) 0:113 move second child to first child ( temp 4-component vector of uint) @@ -612,7 +612,7 @@ local_size = (1, 1, 1) 0:113 AtomicAdd ( temp 4-component vector of uint) 0:113 'gs_ua4' ( shared 4-component vector of uint) 0:113 'gs_ub4' ( shared 4-component vector of uint) -0:114 AtomicAnd ( temp void) +0:114 AtomicAnd ( temp 4-component vector of uint) 0:114 'gs_ua4' ( shared 4-component vector of uint) 0:114 'gs_ub4' ( shared 4-component vector of uint) 0:115 move second child to first child ( temp 4-component vector of uint) @@ -631,7 +631,7 @@ local_size = (1, 1, 1) 0:117 AtomicExchange ( temp 4-component vector of uint) 0:117 'gs_ua4' ( shared 4-component vector of uint) 0:117 'gs_ub4' ( shared 4-component vector of uint) -0:118 AtomicMax ( temp void) +0:118 AtomicMax ( temp 4-component vector of uint) 0:118 'gs_ua4' ( shared 4-component vector of uint) 0:118 'gs_ub4' ( shared 4-component vector of uint) 0:119 move second child to first child ( temp 4-component vector of uint) @@ -639,7 +639,7 @@ local_size = (1, 1, 1) 0:119 AtomicMax ( temp 4-component vector of uint) 0:119 'gs_ua4' ( shared 4-component vector of uint) 0:119 'gs_ub4' ( shared 4-component vector of uint) -0:120 AtomicMin ( temp void) +0:120 AtomicMin ( temp 4-component vector of uint) 0:120 'gs_ua4' ( shared 4-component vector of uint) 0:120 'gs_ub4' ( shared 4-component vector of uint) 0:121 move second child to first child ( temp 4-component vector of uint) @@ -647,7 +647,7 @@ local_size = (1, 1, 1) 0:121 AtomicMin ( temp 4-component vector of uint) 0:121 'gs_ua4' ( shared 4-component vector of uint) 0:121 'gs_ub4' ( shared 4-component vector of uint) -0:122 AtomicOr ( temp void) +0:122 AtomicOr ( temp 4-component vector of uint) 0:122 'gs_ua4' ( shared 4-component vector of uint) 0:122 'gs_ub4' ( shared 4-component vector of uint) 0:123 move second child to first child ( temp 4-component vector of uint) @@ -655,7 +655,7 @@ local_size = (1, 1, 1) 0:123 AtomicOr ( temp 4-component vector of uint) 0:123 'gs_ua4' ( shared 4-component vector of uint) 0:123 'gs_ub4' ( shared 4-component vector of uint) -0:124 AtomicXor ( temp void) +0:124 AtomicXor ( temp 4-component vector of uint) 0:124 'gs_ua4' ( shared 4-component vector of uint) 0:124 'gs_ub4' ( shared 4-component vector of uint) 0:125 move second child to first child ( temp 4-component vector of uint) @@ -905,12 +905,12 @@ local_size = (1, 1, 1) 63: 61(bool) FOrdNotEqual 60 62 64: 61(bool) All 63 68: 8(int) Load 67(gs_ub) - 71: 2 AtomicIAdd 66(gs_ua) 69 70 68 + 71: 8(int) AtomicIAdd 66(gs_ua) 69 70 68 73: 8(int) Load 67(gs_ub) 74: 8(int) AtomicIAdd 66(gs_ua) 69 70 73 Store 72(out_u1) 74 75: 8(int) Load 67(gs_ub) - 76: 2 AtomicAnd 66(gs_ua) 69 70 75 + 76: 8(int) AtomicAnd 66(gs_ua) 69 70 75 77: 8(int) Load 67(gs_ub) 78: 8(int) AtomicAnd 66(gs_ua) 69 70 77 Store 72(out_u1) 78 @@ -922,22 +922,22 @@ local_size = (1, 1, 1) 84: 8(int) AtomicExchange 66(gs_ua) 69 70 83 Store 72(out_u1) 84 85: 8(int) Load 67(gs_ub) - 86: 2 AtomicSMax 66(gs_ua) 69 70 85 + 86: 8(int) AtomicUMax 66(gs_ua) 69 70 85 87: 8(int) Load 67(gs_ub) 88: 8(int) AtomicUMax 66(gs_ua) 69 70 87 Store 72(out_u1) 88 89: 8(int) Load 67(gs_ub) - 90: 2 AtomicSMin 66(gs_ua) 69 70 89 + 90: 8(int) AtomicUMin 66(gs_ua) 69 70 89 91: 8(int) Load 67(gs_ub) 92: 8(int) AtomicUMin 66(gs_ua) 69 70 91 Store 72(out_u1) 92 93: 8(int) Load 67(gs_ub) - 94: 2 AtomicOr 66(gs_ua) 69 70 93 + 94: 8(int) AtomicOr 66(gs_ua) 69 70 93 95: 8(int) Load 67(gs_ub) 96: 8(int) AtomicOr 66(gs_ua) 69 70 95 Store 72(out_u1) 96 97: 8(int) Load 67(gs_ub) - 98: 2 AtomicXor 66(gs_ua) 69 70 97 + 98: 8(int) AtomicXor 66(gs_ua) 69 70 97 99: 8(int) Load 67(gs_ub) 100: 8(int) AtomicXor 66(gs_ua) 69 70 99 Store 72(out_u1) 100 @@ -962,12 +962,12 @@ local_size = (1, 1, 1) 108: 106(bvec2) FOrdNotEqual 105 107 109: 61(bool) All 108 113: 26(ivec2) Load 112(gs_ub2) - 114: 2 AtomicIAdd 111(gs_ua2) 69 70 113 + 114: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 113 116: 26(ivec2) Load 112(gs_ub2) 117: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 116 Store 115(out_u2) 117 118: 26(ivec2) Load 112(gs_ub2) - 119: 2 AtomicAnd 111(gs_ua2) 69 70 118 + 119: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 118 120: 26(ivec2) Load 112(gs_ub2) 121: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 120 Store 115(out_u2) 121 @@ -979,22 +979,22 @@ local_size = (1, 1, 1) 127: 26(ivec2) AtomicExchange 111(gs_ua2) 69 70 126 Store 115(out_u2) 127 128: 26(ivec2) Load 112(gs_ub2) - 129: 2 AtomicSMax 111(gs_ua2) 69 70 128 + 129: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 128 130: 26(ivec2) Load 112(gs_ub2) 131: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 130 Store 115(out_u2) 131 132: 26(ivec2) Load 112(gs_ub2) - 133: 2 AtomicSMin 111(gs_ua2) 69 70 132 + 133: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 132 134: 26(ivec2) Load 112(gs_ub2) 135: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 134 Store 115(out_u2) 135 136: 26(ivec2) Load 112(gs_ub2) - 137: 2 AtomicOr 111(gs_ua2) 69 70 136 + 137: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 136 138: 26(ivec2) Load 112(gs_ub2) 139: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 138 Store 115(out_u2) 139 140: 26(ivec2) Load 112(gs_ub2) - 141: 2 AtomicXor 111(gs_ua2) 69 70 140 + 141: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 140 142: 26(ivec2) Load 112(gs_ub2) 143: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 142 Store 115(out_u2) 143 @@ -1012,12 +1012,12 @@ local_size = (1, 1, 1) 152: 150(bvec3) FOrdNotEqual 149 151 153: 61(bool) All 152 157: 38(ivec3) Load 156(gs_ub3) - 158: 2 AtomicIAdd 155(gs_ua3) 69 70 157 + 158: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 157 160: 38(ivec3) Load 156(gs_ub3) 161: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 160 Store 159(out_u3) 161 162: 38(ivec3) Load 156(gs_ub3) - 163: 2 AtomicAnd 155(gs_ua3) 69 70 162 + 163: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 162 164: 38(ivec3) Load 156(gs_ub3) 165: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 164 Store 159(out_u3) 165 @@ -1029,22 +1029,22 @@ local_size = (1, 1, 1) 171: 38(ivec3) AtomicExchange 155(gs_ua3) 69 70 170 Store 159(out_u3) 171 172: 38(ivec3) Load 156(gs_ub3) - 173: 2 AtomicSMax 155(gs_ua3) 69 70 172 + 173: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 172 174: 38(ivec3) Load 156(gs_ub3) 175: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 174 Store 159(out_u3) 175 176: 38(ivec3) Load 156(gs_ub3) - 177: 2 AtomicSMin 155(gs_ua3) 69 70 176 + 177: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 176 178: 38(ivec3) Load 156(gs_ub3) 179: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 178 Store 159(out_u3) 179 180: 38(ivec3) Load 156(gs_ub3) - 181: 2 AtomicOr 155(gs_ua3) 69 70 180 + 181: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 180 182: 38(ivec3) Load 156(gs_ub3) 183: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 182 Store 159(out_u3) 183 184: 38(ivec3) Load 156(gs_ub3) - 185: 2 AtomicXor 155(gs_ua3) 69 70 184 + 185: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 184 186: 38(ivec3) Load 156(gs_ub3) 187: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 186 Store 159(out_u3) 187 @@ -1062,12 +1062,12 @@ local_size = (1, 1, 1) 195: 193(bvec4) FOrdNotEqual 192 194 196: 61(bool) All 195 200: 50(ivec4) Load 199(gs_ub4) - 201: 2 AtomicIAdd 198(gs_ua4) 69 70 200 + 201: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 200 203: 50(ivec4) Load 199(gs_ub4) 204: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 203 Store 202(out_u4) 204 205: 50(ivec4) Load 199(gs_ub4) - 206: 2 AtomicAnd 198(gs_ua4) 69 70 205 + 206: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 205 207: 50(ivec4) Load 199(gs_ub4) 208: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 207 Store 202(out_u4) 208 @@ -1079,22 +1079,22 @@ local_size = (1, 1, 1) 214: 50(ivec4) AtomicExchange 198(gs_ua4) 69 70 213 Store 202(out_u4) 214 215: 50(ivec4) Load 199(gs_ub4) - 216: 2 AtomicSMax 198(gs_ua4) 69 70 215 + 216: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 215 217: 50(ivec4) Load 199(gs_ub4) 218: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 217 Store 202(out_u4) 218 219: 50(ivec4) Load 199(gs_ub4) - 220: 2 AtomicSMin 198(gs_ua4) 69 70 219 + 220: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 219 221: 50(ivec4) Load 199(gs_ub4) 222: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 221 Store 202(out_u4) 222 223: 50(ivec4) Load 199(gs_ub4) - 224: 2 AtomicOr 198(gs_ua4) 69 70 223 + 224: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 223 225: 50(ivec4) Load 199(gs_ub4) 226: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 225 Store 202(out_u4) 226 227: 50(ivec4) Load 199(gs_ub4) - 228: 2 AtomicXor 198(gs_ua4) 69 70 227 + 228: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 227 229: 50(ivec4) Load 199(gs_ub4) 230: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 229 Store 202(out_u4) 230 diff --git a/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/Test/baseResults/hlsl.structbuffer.atomics.frag.out index 977a0ebc9de89387e77c6361e2b83c37239813da..a03b4d800a74df15bfeb1bda6a1a31aa2db04bd8 100644 --- a/Test/baseResults/hlsl.structbuffer.atomics.frag.out +++ b/Test/baseResults/hlsl.structbuffer.atomics.frag.out @@ -6,7 +6,7 @@ gl_FragCoord origin is upper left 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence -0:8 AtomicAdd ( temp void) +0:8 AtomicAdd ( temp uint) 0:8 indirect index (layout( row_major std430) buffer uint) 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) -0:10 AtomicAnd ( temp void) +0:10 AtomicAnd ( temp uint) 0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) -0:15 AtomicMax ( temp void) +0:15 AtomicMax ( temp uint) 0:15 indirect index (layout( row_major std430) buffer uint) 0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:16 2 (const int) 0:16 Constant: 0:16 1 (const int) -0:17 AtomicMin ( temp void) +0:17 AtomicMin ( temp uint) 0:17 indirect index (layout( row_major std430) buffer uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:18 2 (const int) 0:18 Constant: 0:18 1 (const int) -0:19 AtomicOr ( temp void) +0:19 AtomicOr ( temp uint) 0:19 indirect index (layout( row_major std430) buffer uint) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -179,7 +179,7 @@ gl_FragCoord origin is upper left 0:20 2 (const int) 0:20 Constant: 0:20 1 (const int) -0:21 AtomicXor ( temp void) +0:21 AtomicXor ( temp uint) 0:21 indirect index (layout( row_major std430) buffer uint) 0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence -0:8 AtomicAdd ( temp void) +0:8 AtomicAdd ( temp uint) 0:8 indirect index (layout( row_major std430) buffer uint) 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) -0:10 AtomicAnd ( temp void) +0:10 AtomicAnd ( temp uint) 0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) -0:15 AtomicMax ( temp void) +0:15 AtomicMax ( temp uint) 0:15 indirect index (layout( row_major std430) buffer uint) 0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -362,7 +362,7 @@ gl_FragCoord origin is upper left 0:16 2 (const int) 0:16 Constant: 0:16 1 (const int) -0:17 AtomicMin ( temp void) +0:17 AtomicMin ( temp uint) 0:17 indirect index (layout( row_major std430) buffer uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -390,7 +390,7 @@ gl_FragCoord origin is upper left 0:18 2 (const int) 0:18 Constant: 0:18 1 (const int) -0:19 AtomicOr ( temp void) +0:19 AtomicOr ( temp uint) 0:19 indirect index (layout( row_major std430) buffer uint) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -418,7 +418,7 @@ gl_FragCoord origin is upper left 0:20 2 (const int) 0:20 Constant: 0:20 1 (const int) -0:21 AtomicXor ( temp void) +0:21 AtomicXor ( temp uint) 0:21 indirect index (layout( row_major std430) buffer uint) 0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) @@ -542,14 +542,14 @@ gl_FragCoord origin is upper left 29(u): 7(ptr) Variable Function 22: 18(int) ShiftRightArithmetic 20 21 24: 23(ptr) AccessChain 17(sbuf) 19 22 - 28: 2 AtomicIAdd 24 26 27 25 + 28: 6(int) AtomicIAdd 24 26 27 25 30: 18(int) ShiftRightArithmetic 20 21 31: 23(ptr) AccessChain 17(sbuf) 19 30 32: 6(int) AtomicIAdd 31 26 27 25 Store 29(u) 32 33: 18(int) ShiftRightArithmetic 20 21 34: 23(ptr) AccessChain 17(sbuf) 19 33 - 35: 2 AtomicAnd 34 26 27 25 + 35: 6(int) AtomicAnd 34 26 27 25 36: 18(int) ShiftRightArithmetic 20 21 37: 23(ptr) AccessChain 17(sbuf) 19 36 38: 6(int) AtomicAnd 37 26 27 25 @@ -565,28 +565,28 @@ gl_FragCoord origin is upper left Store 29(u) 45 46: 18(int) ShiftRightArithmetic 20 21 47: 23(ptr) AccessChain 17(sbuf) 19 46 - 48: 2 AtomicSMax 47 26 27 25 + 48: 6(int) AtomicUMax 47 26 27 25 49: 18(int) ShiftRightArithmetic 20 21 50: 23(ptr) AccessChain 17(sbuf) 19 49 51: 6(int) AtomicUMax 50 26 27 25 Store 29(u) 51 52: 18(int) ShiftRightArithmetic 20 21 53: 23(ptr) AccessChain 17(sbuf) 19 52 - 54: 2 AtomicSMin 53 26 27 25 + 54: 6(int) AtomicUMin 53 26 27 25 55: 18(int) ShiftRightArithmetic 20 21 56: 23(ptr) AccessChain 17(sbuf) 19 55 57: 6(int) AtomicUMin 56 26 27 25 Store 29(u) 57 58: 18(int) ShiftRightArithmetic 20 21 59: 23(ptr) AccessChain 17(sbuf) 19 58 - 60: 2 AtomicOr 59 26 27 25 + 60: 6(int) AtomicOr 59 26 27 25 61: 18(int) ShiftRightArithmetic 20 21 62: 23(ptr) AccessChain 17(sbuf) 19 61 63: 6(int) AtomicOr 62 26 27 25 Store 29(u) 63 64: 18(int) ShiftRightArithmetic 20 21 65: 23(ptr) AccessChain 17(sbuf) 19 64 - 66: 2 AtomicXor 65 26 27 25 + 66: 6(int) AtomicXor 65 26 27 25 67: 18(int) ShiftRightArithmetic 20 21 68: 23(ptr) AccessChain 17(sbuf) 19 67 69: 6(int) AtomicXor 68 26 27 25 diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4783687919f13127342bee693afc5ff5025e9a3c..8b4d67ab8efd87a219ae53e74fb6baa010d71f0c 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4815,6 +4815,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& } else { // Set the matching operator. Since output is absent, this is all we need to do. node->getAsAggregate()->setOperator(atomicOp); + node->setType(atomic->getType()); } }