silly1 arr out =          
  do 
    arr' <- newArr (cpuArrayType arr) (10*256*4)
    
    copyIn arr' arr 
    
    imm  <- newArr Int (10*256*4)  -- Array with type of return type of kernel
    imm2 <- newArr Int (10*256*4)  
    
    launch 10 256 (sync) arr' imm 
    
    imm' <- permute (\ix -> 10*256 - 1 - ix) imm 
    launch 10 256 (sync) imm' imm2 
    
    copyOut out imm2
silly1 arr out =          
  do 
    arr' <- newArr (cpuArrayType arr) (10*256*4)
    
    copyIn arr' arr 
    
    imm  <- newArr Int (10*256*4)  -- Array with type of return type of kernel
    imm2 <- newArr Int (10*256*4)  
    
    launch 10 256 (sync) arr' imm 
    
    imm' <- permute (\ix -> 10*256 - 1 - ix) imm 
    launch 10 256 (sync) imm' imm2 
    
    copyOut out imm2
silly1 arr out =          
  do 
    arr' <- newArr (cpuArrayType arr) (10*256*4)
    
    copyIn arr' arr 
    
    imm  <- newArr Int (10*256*4)  -- Array with type of return type of kernel
    imm2 <- newArr Int (10*256*4)  
    
    launch 10 256 (sync) arr' imm 
    
    imm' <- permute (\ix -> 10*256 - 1 - ix) imm 
    launch 10 256 (sync) imm' imm2 
    
    copyOut out imm2