| #include <stdint.h> | |
| #include <unistd.h> | |
| int main(void) | |
| { | |
| uint32_t op1 = 0x55555555; | |
| uint32_t op2 = 0x44444444; | |
| uint64_t cc = 0xffffffffffffffffull; | |
| asm volatile( | |
| " clc 0(4,%[op1]),0(%[op2])\n" | |
| " ipm %[cc]\n" | |
| : [cc] "+r" (cc) | |
| : [op1] "r" (&op1), | |
| [op2] "r" (&op2) | |
| : "cc"); | |
| if (cc != 0xffffffff20ffffffull) { | |
| write(1, "bad cc\n", 7); | |
| return 1; | |
| } | |
| return 0; | |
| } |