1*2b956244SIlya Leoshkevich /* 2*2b956244SIlya Leoshkevich * Test the MXDB and MXDBR instructions. 3*2b956244SIlya Leoshkevich * 4*2b956244SIlya Leoshkevich * SPDX-License-Identifier: GPL-2.0-or-later 5*2b956244SIlya Leoshkevich */ 6*2b956244SIlya Leoshkevich #include <assert.h> 7*2b956244SIlya Leoshkevich #include <stdlib.h> 8*2b956244SIlya Leoshkevich main(void)9*2b956244SIlya Leoshkevichint main(void) 10*2b956244SIlya Leoshkevich { 11*2b956244SIlya Leoshkevich union { 12*2b956244SIlya Leoshkevich double d[2]; 13*2b956244SIlya Leoshkevich long double ld; 14*2b956244SIlya Leoshkevich } a; 15*2b956244SIlya Leoshkevich double b; 16*2b956244SIlya Leoshkevich 17*2b956244SIlya Leoshkevich a.d[0] = 1.2345; 18*2b956244SIlya Leoshkevich a.d[1] = 999; 19*2b956244SIlya Leoshkevich b = 6.789; 20*2b956244SIlya Leoshkevich asm("mxdb %[a],%[b]" : [a] "+f" (a.ld) : [b] "R" (b)); 21*2b956244SIlya Leoshkevich assert(a.ld > 8.38 && a.ld < 8.39); 22*2b956244SIlya Leoshkevich 23*2b956244SIlya Leoshkevich a.d[0] = 1.2345; 24*2b956244SIlya Leoshkevich a.d[1] = 999; 25*2b956244SIlya Leoshkevich b = 6.789; 26*2b956244SIlya Leoshkevich asm("mxdbr %[a],%[b]" : [a] "+f" (a.ld) : [b] "f" (b)); 27*2b956244SIlya Leoshkevich assert(a.ld > 8.38 && a.ld < 8.39); 28*2b956244SIlya Leoshkevich 29*2b956244SIlya Leoshkevich return EXIT_SUCCESS; 30*2b956244SIlya Leoshkevich } 31