1/* { dg-do compile } */ 2/* This test checks for absolute memory operands. */ 3/* { dg-require-effective-target nonpic } */ 4/* { dg-options "-O2 -march=k8" } */ 5/* { dg-final { scan-assembler "sar\[^\\n\]*magic_namea" } } */ 6/* { dg-final { scan-assembler "sar\[^\\n\]*magic_nameb" } } */ 7/* { dg-final { scan-assembler "sar\[^\\n\]*magic_namec" } } */ 8/* { dg-final { scan-assembler "shr\[^\\n\]*magic_named" } } */ 9/* { dg-final { scan-assembler "shr\[^\\n\]*magic_namee" } } */ 10/* { dg-final { scan-assembler "shr\[^\\n\]*magic_namef" } } */ 11 12/* Check code generation for several conditional moves doable by single arithmetics. */ 13 14static int magic_namea; 15static char magic_nameb; 16static short magic_namec; 17static int magic_named; 18static char magic_namee; 19static short magic_namef; 20 21unsigned int gen; 22void m(void) 23{ 24 magic_namec=magic_namec>=0?0:-1; 25 magic_namea=magic_namea>=0?0:-1; 26 magic_nameb=magic_nameb>=0?0:-1; 27 magic_named=magic_named>=0?0:1; 28 magic_namee=magic_namee>=0?0:1; 29 magic_namef=magic_namef>=0?0:1; 30} 31 32