add more llvm intrinsics
iteration action to function
loopnest construct