1 #include <stdint.h> 2 #include <string.h> 3 4 static inline void mvcrl_8(const char *dst, const char *src) 5 { 6 asm volatile ( 7 "llill %%r0, 8\n" 8 ".insn sse, 0xE50A00000000, 0(%[dst]), 0(%[src])" 9 : : [dst] "d" (dst), [src] "d" (src) 10 : "memory"); 11 } 12 13 int main(int argc, char *argv[]) 14 { 15 const char *alpha = "abcdefghijklmnop"; 16 17 /* array missing 'i' */ 18 char tstr[17] = "abcdefghjklmnop\0" ; 19 20 /* mvcrl reference use: 'open a hole in an array' */ 21 mvcrl_8(tstr + 9, tstr + 8); 22 23 /* place missing 'i' */ 24 tstr[8] = 'i'; 25 26 return strncmp(alpha, tstr, 16ul); 27 } 28