On powerpc64le-linux, with test-case gdb.arch/powerpc-addpcis.exp I run into
SIGILL:
...
(gdb) PASS: gdb.arch/powerpc-addpcis.exp: get hexadecimal valueof "$r3"
stepi^M
^M
Program terminated with signal SIGILL, Illegal instruction.^M
The program no longer exists.^M
(gdb) PASS: gdb.arch/powerpc-addpcis.exp: set r4
...
because it's a power9 insn, and I'm running on a power8 machine.
Fix this by handling the SIGILL.  Likewise in gdb.arch/powerpc-lnia.exp.
Tested on powerpc64le-linux.
 gdb_breakpoint $bp2
 gdb_breakpoint $bp3
 
-gdb_test "stepi" "" "set r3 "
+set insn_supported 1
+gdb_test_multiple "stepi" "set r3" {
+    -re "Program received signal SIGILL, Illegal instruction\\..*" {
+       set insn_supported 0
+    }
+    -re -wrap "" {
+       pass $gdb_test_name
+    }
+}
+if { ! $insn_supported } {
+    unsupported "illegal instruction"
+    return
+}
 set check_r3 [get_hexadecimal_valueof "\$r3" "default0"]
 gdb_test "stepi" "" "set r4"
 set check_r4 [get_hexadecimal_valueof "\$r4" "default0"]
 
 
 # single-step through the lnia instructions, and retrieve the
 # register values as we proceed.
-gdb_test "stepi" "" "set r3"
+set insn_supported 1
+gdb_test_multiple "stepi" "set r3" {
+    -re "Program received signal SIGILL, Illegal instruction\\..*" {
+       set insn_supported 0
+    }
+    -re -wrap "" {
+       pass $gdb_test_name
+    }
+}
+if { ! $insn_supported } {
+    unsupported "illegal instruction"
+    return
+}
 set check_r3 [get_hexadecimal_valueof "\$r3" "default0"]
 gdb_test "stepi" "" "set r4"
 set check_r4 [get_hexadecimal_valueof "\$r4" "default0"]