/*
 * Test the LAALG instruction.
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */
#include <assert.h>
#include <stdlib.h>

int main(void)
{
    unsigned long cc = 0, op1, op2 = 40, op3 = 2;

    asm("slgfi %[cc],1\n"  /* Set cc_src = -1. */
        "laalg %[op1],%[op3],%[op2]\n"
        "ipm %[cc]"
        : [cc] "+r" (cc)
        , [op1] "=r" (op1)
        , [op2] "+T" (op2)
        : [op3] "r" (op3)
        : "cc");

    assert(cc == 0xffffffff10ffffff);
    assert(op1 == 40);
    assert(op2 == 42);

    return EXIT_SUCCESS;
}