diff --git a/Test/hlsl.wavebroadcast.comp b/Test/hlsl.wavebroadcast.comp
index f6bae3671e7d351b23d28ae5570b8aee33046141..4498305ca02c152e5524a3cc2fc39a14d01f55af 100644
--- a/Test/hlsl.wavebroadcast.comp
+++ b/Test/hlsl.wavebroadcast.comp
@@ -26,28 +26,28 @@ void CSMain(uint3 dti : SV_DispatchThreadID)
 	data[dti.x].f.xy = WaveReadLaneAt(data[dti.x].f.xy, 13);
 	data[dti.x].f.xyz = WaveReadLaneAt(data[dti.x].f.xyz, 13);
 
-	data[dti.x].d = WaveReadFirstLane(data[dti.x].d);
-	data[dti.x].d.x = WaveReadFirstLane(data[dti.x].d.x);
-	data[dti.x].d.xy = WaveReadFirstLane(data[dti.x].d.xy);
-	data[dti.x].d.xyz = WaveReadFirstLane(data[dti.x].d.xyz);
-
-	data[dti.x].u = WaveReadFirstLane(data[dti.x].u);
-	data[dti.x].u.x = WaveReadFirstLane(data[dti.x].u.x);
-	data[dti.x].u.xy = WaveReadFirstLane(data[dti.x].u.xy);
-	data[dti.x].u.xyz = WaveReadFirstLane(data[dti.x].u.xyz);
-
-	data[dti.x].i = WaveReadFirstLane(data[dti.x].i);
-	data[dti.x].i.x = WaveReadFirstLane(data[dti.x].i.x);
-	data[dti.x].i.xy = WaveReadFirstLane(data[dti.x].i.xy);
-	data[dti.x].i.xyz = WaveReadFirstLane(data[dti.x].i.xyz);
-
-	data[dti.x].f = WaveReadFirstLane(data[dti.x].f);
-	data[dti.x].f.x = WaveReadFirstLane(data[dti.x].f.x);
-	data[dti.x].f.xy = WaveReadFirstLane(data[dti.x].f.xy);
-	data[dti.x].f.xyz = WaveReadFirstLane(data[dti.x].f.xyz);
-
-	data[dti.x].d = WaveReadFirstLane(data[dti.x].d);
-	data[dti.x].d.x = WaveReadFirstLane(data[dti.x].d.x);
-	data[dti.x].d.xy = WaveReadFirstLane(data[dti.x].d.xy);
-	data[dti.x].d.xyz = WaveReadFirstLane(data[dti.x].d.xyz);
+	data[dti.x].d = WaveReadLaneFirst(data[dti.x].d);
+	data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x);
+	data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy);
+	data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz);
+
+	data[dti.x].u = WaveReadLaneFirst(data[dti.x].u);
+	data[dti.x].u.x = WaveReadLaneFirst(data[dti.x].u.x);
+	data[dti.x].u.xy = WaveReadLaneFirst(data[dti.x].u.xy);
+	data[dti.x].u.xyz = WaveReadLaneFirst(data[dti.x].u.xyz);
+
+	data[dti.x].i = WaveReadLaneFirst(data[dti.x].i);
+	data[dti.x].i.x = WaveReadLaneFirst(data[dti.x].i.x);
+	data[dti.x].i.xy = WaveReadLaneFirst(data[dti.x].i.xy);
+	data[dti.x].i.xyz = WaveReadLaneFirst(data[dti.x].i.xyz);
+
+	data[dti.x].f = WaveReadLaneFirst(data[dti.x].f);
+	data[dti.x].f.x = WaveReadLaneFirst(data[dti.x].f.x);
+	data[dti.x].f.xy = WaveReadLaneFirst(data[dti.x].f.xy);
+	data[dti.x].f.xyz = WaveReadLaneFirst(data[dti.x].f.xyz);
+
+	data[dti.x].d = WaveReadLaneFirst(data[dti.x].d);
+	data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x);
+	data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy);
+	data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz);
 }
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index 5022fcb2a991a4a6e1422f1d05717270fd636807..cc847ae22fd716be58dca003edcd571241d72f2a 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -913,7 +913,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
         { "WaveActiveAllTrue",                "S",     "B",       "S",              "B",              EShLangPSCS,  false},
         { "WaveActiveBallot",                 "V4",    "U",       "S",              "B",              EShLangPSCS,  false},
         { "WaveReadLaneAt",                   nullptr, nullptr,   "SV,S",           "DFUI,U",         EShLangPSCS,  false},
-        { "WaveReadFirstLane",                nullptr, nullptr,   "SV",             "DFUI",           EShLangPSCS,  false},
+        { "WaveReadLaneFirst",                nullptr, nullptr,   "SV",             "DFUI",           EShLangPSCS,  false},
         { "WaveActiveAllEqual",               "S",     "B",       "SV",             "DFUI",           EShLangPSCS,  false},
         { "WaveActiveAllEqualBool",           "S",     "B",       "S",              "B",              EShLangPSCS,  false},
         { "WaveActiveCountBits",              "S",     "U",       "S",              "B",              EShLangPSCS,  false},
@@ -1282,7 +1282,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
     symbolTable.relateToOperator("WaveActiveAnyTrue",                          EOpSubgroupAny);
     symbolTable.relateToOperator("WaveActiveAllTrue",                          EOpSubgroupAll);
     symbolTable.relateToOperator("WaveActiveBallot",                           EOpSubgroupBallot);
-    symbolTable.relateToOperator("WaveReadFirstLane",                          EOpSubgroupBroadcastFirst);
+    symbolTable.relateToOperator("WaveReadLaneFirst",                          EOpSubgroupBroadcastFirst);
     symbolTable.relateToOperator("WaveReadLaneAt",                             EOpSubgroupShuffle);
     symbolTable.relateToOperator("WaveActiveAllEqual",                         EOpSubgroupAllEqual);
     symbolTable.relateToOperator("WaveActiveAllEqualBool",                     EOpSubgroupAllEqual);