diff --git a/test/codegen/src/java/com/amd/aparapi/test/WideInc.java b/test/codegen/src/java/com/amd/aparapi/test/WideInc.java
index 8e24474e0b7ad9da4b6d45717d6922117a9c8c3b..971ea7f5c893aa593794e18d52b5e367f7fb367b 100644
--- a/test/codegen/src/java/com/amd/aparapi/test/WideInc.java
+++ b/test/codegen/src/java/com/amd/aparapi/test/WideInc.java
@@ -9,13 +9,12 @@ public class WideInc{
 }
 
 /**{OpenCL{
-typedef struct This_s{
+typedef struct This_s{  
    int passid;
 }This;
 int get_pass_id(This *this){
    return this->passid;
    }
-
 __kernel void run(
    int passid
 ){
diff --git a/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java b/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac88e3581dbe9e25483e1543239ff4511085cb13
--- /dev/null
+++ b/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java
@@ -0,0 +1,543 @@
+package com.amd.aparapi.test;
+
+public class WideLoad{
+
+   public void run() {
+      // we need 256 local variables to force the use of wide local variable indices
+      int value00 = 0;
+      int value01 = 0;
+      int value02 = 0;
+      int value03 = 0;
+      int value04 = 0;
+      int value05 = 0;
+      int value06 = 0;
+      int value07 = 0;
+      int value08 = 0;
+      int value09 = 0;
+      int value0A = 0;
+      int value0B = 0;
+      int value0C = 0;
+      int value0D = 0;
+      int value0E = 0;
+      int value0F = 0;
+      int value10 = 0;
+      int value11 = 0;
+      int value12 = 0;
+      int value13 = 0;
+      int value14 = 0;
+      int value15 = 0;
+      int value16 = 0;
+      int value17 = 0;
+      int value18 = 0;
+      int value19 = 0;
+      int value1A = 0;
+      int value1B = 0;
+      int value1C = 0;
+      int value1D = 0;
+      int value1E = 0;
+      int value1F = 0;
+      int value20 = 0;
+      int value21 = 0;
+      int value22 = 0;
+      int value23 = 0;
+      int value24 = 0;
+      int value25 = 0;
+      int value26 = 0;
+      int value27 = 0;
+      int value28 = 0;
+      int value29 = 0;
+      int value2A = 0;
+      int value2B = 0;
+      int value2C = 0;
+      int value2D = 0;
+      int value2E = 0;
+      int value2F = 0;
+      int value30 = 0;
+      int value31 = 0;
+      int value32 = 0;
+      int value33 = 0;
+      int value34 = 0;
+      int value35 = 0;
+      int value36 = 0;
+      int value37 = 0;
+      int value38 = 0;
+      int value39 = 0;
+      int value3A = 0;
+      int value3B = 0;
+      int value3C = 0;
+      int value3D = 0;
+      int value3E = 0;
+      int value3F = 0;
+      int value40 = 0;
+      int value41 = 0;
+      int value42 = 0;
+      int value43 = 0;
+      int value44 = 0;
+      int value45 = 0;
+      int value46 = 0;
+      int value47 = 0;
+      int value48 = 0;
+      int value49 = 0;
+      int value4A = 0;
+      int value4B = 0;
+      int value4C = 0;
+      int value4D = 0;
+      int value4E = 0;
+      int value4F = 0;
+      int value50 = 0;
+      int value51 = 0;
+      int value52 = 0;
+      int value53 = 0;
+      int value54 = 0;
+      int value55 = 0;
+      int value56 = 0;
+      int value57 = 0;
+      int value58 = 0;
+      int value59 = 0;
+      int value5A = 0;
+      int value5B = 0;
+      int value5C = 0;
+      int value5D = 0;
+      int value5E = 0;
+      int value5F = 0;
+      int value60 = 0;
+      int value61 = 0;
+      int value62 = 0;
+      int value63 = 0;
+      int value64 = 0;
+      int value65 = 0;
+      int value66 = 0;
+      int value67 = 0;
+      int value68 = 0;
+      int value69 = 0;
+      int value6A = 0;
+      int value6B = 0;
+      int value6C = 0;
+      int value6D = 0;
+      int value6E = 0;
+      int value6F = 0;
+      int value70 = 0;
+      int value71 = 0;
+      int value72 = 0;
+      int value73 = 0;
+      int value74 = 0;
+      int value75 = 0;
+      int value76 = 0;
+      int value77 = 0;
+      int value78 = 0;
+      int value79 = 0;
+      int value7A = 0;
+      int value7B = 0;
+      int value7C = 0;
+      int value7D = 0;
+      int value7E = 0;
+      int value7F = 0;   
+      int value80 = 0;
+      int value81 = 0;
+      int value82 = 0;
+      int value83 = 0;
+      int value84 = 0;
+      int value85 = 0;
+      int value86 = 0;
+      int value87 = 0;
+      int value88 = 0;
+      int value89 = 0;
+      int value8A = 0;
+      int value8B = 0;
+      int value8C = 0;
+      int value8D = 0;
+      int value8E = 0;
+      int value8F = 0;
+      int value90 = 0;
+      int value91 = 0;
+      int value92 = 0;
+      int value93 = 0;
+      int value94 = 0;
+      int value95 = 0;
+      int value96 = 0;
+      int value97 = 0;
+      int value98 = 0;
+      int value99 = 0;
+      int value9A = 0;
+      int value9B = 0;
+      int value9C = 0;
+      int value9D = 0;
+      int value9E = 0;
+      int value9F = 0;
+      int valueA0 = 0;
+      int valueA1 = 0;
+      int valueA2 = 0;
+      int valueA3 = 0;
+      int valueA4 = 0;
+      int valueA5 = 0;
+      int valueA6 = 0;
+      int valueA7 = 0;
+      int valueA8 = 0;
+      int valueA9 = 0;
+      int valueAA = 0;
+      int valueAB = 0;
+      int valueAC = 0;
+      int valueAD = 0;
+      int valueAE = 0;
+      int valueAF = 0;
+      int valueB0 = 0;
+      int valueB1 = 0;
+      int valueB2 = 0;
+      int valueB3 = 0;
+      int valueB4 = 0;
+      int valueB5 = 0;
+      int valueB6 = 0;
+      int valueB7 = 0;
+      int valueB8 = 0;
+      int valueB9 = 0;
+      int valueBA = 0;
+      int valueBB = 0;
+      int valueBC = 0;
+      int valueBD = 0;
+      int valueBE = 0;
+      int valueBF = 0;
+      int valueC0 = 0;
+      int valueC1 = 0;
+      int valueC2 = 0;
+      int valueC3 = 0;
+      int valueC4 = 0;
+      int valueC5 = 0;
+      int valueC6 = 0;
+      int valueC7 = 0;
+      int valueC8 = 0;
+      int valueC9 = 0;
+      int valueCA = 0;
+      int valueCB = 0;
+      int valueCC = 0;
+      int valueCD = 0;
+      int valueCE = 0;
+      int valueCF = 0;
+      int valueD0 = 0;
+      int valueD1 = 0;
+      int valueD2 = 0;
+      int valueD3 = 0;
+      int valueD4 = 0;
+      int valueD5 = 0;
+      int valueD6 = 0;
+      int valueD7 = 0;
+      int valueD8 = 0;
+      int valueD9 = 0;
+      int valueDA = 0;
+      int valueDB = 0;
+      int valueDC = 0;
+      int valueDD = 0;
+      int valueDE = 0;
+      int valueDF = 0;
+      int valueE0 = 0;
+      int valueE1 = 0;
+      int valueE2 = 0;
+      int valueE3 = 0;
+      int valueE4 = 0;
+      int valueE5 = 0;
+      int valueE6 = 0;
+      int valueE7 = 0;
+      int valueE8 = 0;
+      int valueE9 = 0;
+      int valueEA = 0;
+      int valueEB = 0;
+      int valueEC = 0;
+      int valueED = 0;
+      int valueEE = 0;
+      int valueEF = 0;
+      int valueF0 = 0;
+      int valueF1 = 0;
+      int valueF2 = 0;
+      int valueF3 = 0;
+      int valueF4 = 0;
+      int valueF5 = 0;
+      int valueF6 = 0;
+      int valueF7 = 0;
+      int valueF8 = 0;
+      int valueF9 = 0;
+      int valueFA = 0;
+      int valueFB = 0;
+      int valueFC = 0;
+      int valueFD = 0;
+      int valueFE = 0;
+      int valueFF = 0;
+      int valueWide = 0;  // wide 
+      valueWide++;   // wide 
+   }
+}
+
+/**{OpenCL{
+typedef struct This_s{  
+   int passid;
+}This;
+int get_pass_id(This *this){
+   return this->passid;
+   }
+__kernel void run(
+   int passid
+){
+   This thisStruct;
+   This* this=&thisStruct;
+   this->passid = passid;
+   {
+      int value00 = 0;
+      int value01 = 0;
+      int value02 = 0;
+      int value03 = 0;
+      int value04 = 0;
+      int value05 = 0;
+      int value06 = 0;
+      int value07 = 0;
+      int value08 = 0;
+      int value09 = 0;
+      int value0A = 0;
+      int value0B = 0;
+      int value0C = 0;
+      int value0D = 0;
+      int value0E = 0;
+      int value0F = 0;
+      int value10 = 0;
+      int value11 = 0;
+      int value12 = 0;
+      int value13 = 0;
+      int value14 = 0;
+      int value15 = 0;
+      int value16 = 0;
+      int value17 = 0;
+      int value18 = 0;
+      int value19 = 0;
+      int value1A = 0;
+      int value1B = 0;
+      int value1C = 0;
+      int value1D = 0;
+      int value1E = 0;
+      int value1F = 0;
+      int value20 = 0;
+      int value21 = 0;
+      int value22 = 0;
+      int value23 = 0;
+      int value24 = 0;
+      int value25 = 0;
+      int value26 = 0;
+      int value27 = 0;
+      int value28 = 0;
+      int value29 = 0;
+      int value2A = 0;
+      int value2B = 0;
+      int value2C = 0;
+      int value2D = 0;
+      int value2E = 0;
+      int value2F = 0;
+      int value30 = 0;
+      int value31 = 0;
+      int value32 = 0;
+      int value33 = 0;
+      int value34 = 0;
+      int value35 = 0;
+      int value36 = 0;
+      int value37 = 0;
+      int value38 = 0;
+      int value39 = 0;
+      int value3A = 0;
+      int value3B = 0;
+      int value3C = 0;
+      int value3D = 0;
+      int value3E = 0;
+      int value3F = 0;
+      int value40 = 0;
+      int value41 = 0;
+      int value42 = 0;
+      int value43 = 0;
+      int value44 = 0;
+      int value45 = 0;
+      int value46 = 0;
+      int value47 = 0;
+      int value48 = 0;
+      int value49 = 0;
+      int value4A = 0;
+      int value4B = 0;
+      int value4C = 0;
+      int value4D = 0;
+      int value4E = 0;
+      int value4F = 0;
+      int value50 = 0;
+      int value51 = 0;
+      int value52 = 0;
+      int value53 = 0;
+      int value54 = 0;
+      int value55 = 0;
+      int value56 = 0;
+      int value57 = 0;
+      int value58 = 0;
+      int value59 = 0;
+      int value5A = 0;
+      int value5B = 0;
+      int value5C = 0;
+      int value5D = 0;
+      int value5E = 0;
+      int value5F = 0;
+      int value60 = 0;
+      int value61 = 0;
+      int value62 = 0;
+      int value63 = 0;
+      int value64 = 0;
+      int value65 = 0;
+      int value66 = 0;
+      int value67 = 0;
+      int value68 = 0;
+      int value69 = 0;
+      int value6A = 0;
+      int value6B = 0;
+      int value6C = 0;
+      int value6D = 0;
+      int value6E = 0;
+      int value6F = 0;
+      int value70 = 0;
+      int value71 = 0;
+      int value72 = 0;
+      int value73 = 0;
+      int value74 = 0;
+      int value75 = 0;
+      int value76 = 0;
+      int value77 = 0;
+      int value78 = 0;
+      int value79 = 0;
+      int value7A = 0;
+      int value7B = 0;
+      int value7C = 0;
+      int value7D = 0;
+      int value7E = 0;
+      int value7F = 0;   
+      int value80 = 0;
+      int value81 = 0;
+      int value82 = 0;
+      int value83 = 0;
+      int value84 = 0;
+      int value85 = 0;
+      int value86 = 0;
+      int value87 = 0;
+      int value88 = 0;
+      int value89 = 0;
+      int value8A = 0;
+      int value8B = 0;
+      int value8C = 0;
+      int value8D = 0;
+      int value8E = 0;
+      int value8F = 0;
+      int value90 = 0;
+      int value91 = 0;
+      int value92 = 0;
+      int value93 = 0;
+      int value94 = 0;
+      int value95 = 0;
+      int value96 = 0;
+      int value97 = 0;
+      int value98 = 0;
+      int value99 = 0;
+      int value9A = 0;
+      int value9B = 0;
+      int value9C = 0;
+      int value9D = 0;
+      int value9E = 0;
+      int value9F = 0;
+      int valueA0 = 0;
+      int valueA1 = 0;
+      int valueA2 = 0;
+      int valueA3 = 0;
+      int valueA4 = 0;
+      int valueA5 = 0;
+      int valueA6 = 0;
+      int valueA7 = 0;
+      int valueA8 = 0;
+      int valueA9 = 0;
+      int valueAA = 0;
+      int valueAB = 0;
+      int valueAC = 0;
+      int valueAD = 0;
+      int valueAE = 0;
+      int valueAF = 0;
+      int valueB0 = 0;
+      int valueB1 = 0;
+      int valueB2 = 0;
+      int valueB3 = 0;
+      int valueB4 = 0;
+      int valueB5 = 0;
+      int valueB6 = 0;
+      int valueB7 = 0;
+      int valueB8 = 0;
+      int valueB9 = 0;
+      int valueBA = 0;
+      int valueBB = 0;
+      int valueBC = 0;
+      int valueBD = 0;
+      int valueBE = 0;
+      int valueBF = 0;
+      int valueC0 = 0;
+      int valueC1 = 0;
+      int valueC2 = 0;
+      int valueC3 = 0;
+      int valueC4 = 0;
+      int valueC5 = 0;
+      int valueC6 = 0;
+      int valueC7 = 0;
+      int valueC8 = 0;
+      int valueC9 = 0;
+      int valueCA = 0;
+      int valueCB = 0;
+      int valueCC = 0;
+      int valueCD = 0;
+      int valueCE = 0;
+      int valueCF = 0;
+      int valueD0 = 0;
+      int valueD1 = 0;
+      int valueD2 = 0;
+      int valueD3 = 0;
+      int valueD4 = 0;
+      int valueD5 = 0;
+      int valueD6 = 0;
+      int valueD7 = 0;
+      int valueD8 = 0;
+      int valueD9 = 0;
+      int valueDA = 0;
+      int valueDB = 0;
+      int valueDC = 0;
+      int valueDD = 0;
+      int valueDE = 0;
+      int valueDF = 0;
+      int valueE0 = 0;
+      int valueE1 = 0;
+      int valueE2 = 0;
+      int valueE3 = 0;
+      int valueE4 = 0;
+      int valueE5 = 0;
+      int valueE6 = 0;
+      int valueE7 = 0;
+      int valueE8 = 0;
+      int valueE9 = 0;
+      int valueEA = 0;
+      int valueEB = 0;
+      int valueEC = 0;
+      int valueED = 0;
+      int valueEE = 0;
+      int valueEF = 0;
+      int valueF0 = 0;
+      int valueF1 = 0;
+      int valueF2 = 0;
+      int valueF3 = 0;
+      int valueF4 = 0;
+      int valueF5 = 0;
+      int valueF6 = 0;
+      int valueF7 = 0;
+      int valueF8 = 0;
+      int valueF9 = 0;
+      int valueFA = 0;
+      int valueFB = 0;
+      int valueFC = 0;
+      int valueFD = 0;
+      int valueFE = 0;
+      int valueFF = 0;
+      int valueWide = 0;
+      valueWide++; 
+      return;
+   }
+}
+}OpenCL}**/