JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGPUShader4_nglVertexAttribI1ivEXT__IJ(JNIEnv *__env, jclass clazz, jint index, jlong vAddress) {
    glVertexAttribI1ivEXTPROC glVertexAttribI1ivEXT = (glVertexAttribI1ivEXTPROC)tlsGetFunction(1728);
    intptr_t v = (intptr_t)vAddress;
    UNUSED_PARAM(clazz)
    glVertexAttribI1ivEXT(index, v);
}
static GLboolean
test_attrib_funcs(void)
{
   GLint vals[4];

   gen_values(vals, 1, SIGNED);
   glVertexAttribI1iEXT(Index, vals[0]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI1iEXT"))
      return GL_FALSE;

   gen_values(vals, 2, SIGNED);
   glVertexAttribI2iEXT(Index, vals[0], vals[1]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI2iEXT"))
      return GL_FALSE;

   gen_values(vals, 3, SIGNED);
   glVertexAttribI3iEXT(Index, vals[0], vals[1], vals[2]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI3iEXT"))
      return GL_FALSE;

   gen_values(vals, 4, SIGNED);
   glVertexAttribI4iEXT(Index, vals[0], vals[1], vals[2], vals[3]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI4iEXT"))
      return GL_FALSE;


   gen_values(vals, 1, SIGNED);
   glVertexAttribI1ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI1ivEXT"))
      return GL_FALSE;

   gen_values(vals, 2, SIGNED);
   glVertexAttribI2ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI2ivEXT"))
      return GL_FALSE;

   gen_values(vals, 3, SIGNED);
   glVertexAttribI3ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI3ivEXT"))
      return GL_FALSE;

   gen_values(vals, 4, SIGNED);
   glVertexAttribI4ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI4ivEXT"))
      return GL_FALSE;


   gen_values(vals, 1, UNSIGNED);
   glVertexAttribI1uiEXT(Index, vals[0]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI1uiEXT"))
      return GL_FALSE;

   gen_values(vals, 2, UNSIGNED);
   glVertexAttribI2uiEXT(Index, vals[0], vals[1]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI2uiEXT"))
      return GL_FALSE;

   gen_values(vals, 3, UNSIGNED);
   glVertexAttribI3uiEXT(Index, vals[0], vals[1], vals[2]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI3uiEXT"))
      return GL_FALSE;

   gen_values(vals, 4, UNSIGNED);
   glVertexAttribI4uiEXT(Index, vals[0], vals[1], vals[2], vals[3]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4uiEXT"))
      return GL_FALSE;


   gen_values(vals, 1, UNSIGNED);
   glVertexAttribI1uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI1uivEXT"))
      return GL_FALSE;

   gen_values(vals, 2, UNSIGNED);
   glVertexAttribI2uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI2uivEXT"))
      return GL_FALSE;

   gen_values(vals, 3, UNSIGNED);
   glVertexAttribI3uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI3uivEXT"))
      return GL_FALSE;

   gen_values(vals, 4, UNSIGNED);
   glVertexAttribI4uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4uivEXT"))
      return GL_FALSE;

   {
      GLbyte bvals[4];
      gen_values(vals, 4, SIGNED);
      bvals[0] = vals[0];
      bvals[1] = vals[1];
      bvals[2] = vals[2];
      bvals[3] = vals[3];
      glVertexAttribI4bvEXT(Index, bvals);
      if (!check_attrib(vals, SIGNED, "glVertexAttribI4bvEXT"))
         return GL_FALSE;
   }

   {
      GLshort svals[4];
      gen_values(vals, 4, SIGNED);
      svals[0] = vals[0];
      svals[1] = vals[1];
      svals[2] = vals[2];
      svals[3] = vals[3];
      glVertexAttribI4svEXT(Index, svals);
      if (!check_attrib(vals, SIGNED, "glVertexAttribI4svEXT"))
         return GL_FALSE;
   }

   {
      GLubyte bvals[4];
      gen_values(vals, 4, UNSIGNED);
      bvals[0] = vals[0];
      bvals[1] = vals[1];
      bvals[2] = vals[2];
      bvals[3] = vals[3];
      glVertexAttribI4ubvEXT(Index, bvals);
      if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4ubvEXT"))
         return GL_FALSE;
   }

   {
      GLushort svals[4];
      gen_values(vals, 4, UNSIGNED);
      svals[0] = vals[0];
      svals[1] = vals[1];
      svals[2] = vals[2];
      svals[3] = vals[3];
      glVertexAttribI4usvEXT(Index, svals);
      if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4usvEXT"))
         return GL_FALSE;
   }

   return GL_TRUE;
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGpuShader4_nglVertexAttribI1ivEXT(JNIEnv *env, jclass clazz, jint index, jobject v, jint v_position, jlong function_pointer) {
	const GLint *v_address = ((const GLint *)(*env)->GetDirectBufferAddress(env, v)) + v_position;
	glVertexAttribI1ivEXTPROC glVertexAttribI1ivEXT = (glVertexAttribI1ivEXTPROC)((intptr_t)function_pointer);
	glVertexAttribI1ivEXT(index, v_address);
}