error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:36:18
   |
LL |         asm!("", out("sp") _);
   |                  ^^^^^^^^^^^

error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:38:18
   |
LL |         asm!("", out("r2") _);
   |                  ^^^^^^^^^^^

error: invalid register `r29`: r29 is used internally by LLVM and cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:42:18
   |
LL |         asm!("", out("r29") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:44:18
   |
LL |         asm!("", out("r30") _);
   |                  ^^^^^^^^^^^^

error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:46:18
   |
LL |         asm!("", out("fp") _);
   |                  ^^^^^^^^^^^

error: invalid register `lr`: the link register cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:48:18
   |
LL |         asm!("", out("lr") _);
   |                  ^^^^^^^^^^^

error: invalid register `ctr`: the counter register cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:50:18
   |
LL |         asm!("", out("ctr") _);
   |                  ^^^^^^^^^^^^

error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
  --> $DIR/bad-reg.rs:52:18
   |
LL |         asm!("", out("vrsave") _);
   |                  ^^^^^^^^^^^^^^^

error: register class `cr` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:100:18
   |
LL |         asm!("", in("cr") x);
   |                  ^^^^^^^^^^

error: register class `cr` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:103:18
   |
LL |         asm!("", out("cr") x);
   |                  ^^^^^^^^^^^

error: register class `cr` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:106:26
   |
LL |         asm!("/* {} */", in(cr) x);
   |                          ^^^^^^^^

error: register class `cr` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:109:26
   |
LL |         asm!("/* {} */", out(cr) _);
   |                          ^^^^^^^^^

error: register class `xer` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:113:18
   |
LL |         asm!("", in("xer") x);
   |                  ^^^^^^^^^^^

error: register class `xer` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:116:18
   |
LL |         asm!("", out("xer") x);
   |                  ^^^^^^^^^^^^

error: register class `xer` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:119:26
   |
LL |         asm!("/* {} */", in(xer) x);
   |                          ^^^^^^^^^

error: register class `xer` can only be used as a clobber, not as an input or output
  --> $DIR/bad-reg.rs:122:26
   |
LL |         asm!("/* {} */", out(xer) _);
   |                          ^^^^^^^^^^

error: register `cr0` conflicts with register `cr`
  --> $DIR/bad-reg.rs:126:31
   |
LL |         asm!("", out("cr") _, out("cr0") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr0`
   |                  |
   |                  register `cr`

error: register `cr1` conflicts with register `cr`
  --> $DIR/bad-reg.rs:128:31
   |
LL |         asm!("", out("cr") _, out("cr1") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr1`
   |                  |
   |                  register `cr`

error: register `cr2` conflicts with register `cr`
  --> $DIR/bad-reg.rs:130:31
   |
LL |         asm!("", out("cr") _, out("cr2") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr2`
   |                  |
   |                  register `cr`

error: register `cr3` conflicts with register `cr`
  --> $DIR/bad-reg.rs:132:31
   |
LL |         asm!("", out("cr") _, out("cr3") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr3`
   |                  |
   |                  register `cr`

error: register `cr4` conflicts with register `cr`
  --> $DIR/bad-reg.rs:134:31
   |
LL |         asm!("", out("cr") _, out("cr4") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr4`
   |                  |
   |                  register `cr`

error: register `cr5` conflicts with register `cr`
  --> $DIR/bad-reg.rs:136:31
   |
LL |         asm!("", out("cr") _, out("cr5") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr5`
   |                  |
   |                  register `cr`

error: register `cr6` conflicts with register `cr`
  --> $DIR/bad-reg.rs:138:31
   |
LL |         asm!("", out("cr") _, out("cr6") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr6`
   |                  |
   |                  register `cr`

error: register `cr7` conflicts with register `cr`
  --> $DIR/bad-reg.rs:140:31
   |
LL |         asm!("", out("cr") _, out("cr7") _);
   |                  -----------  ^^^^^^^^^^^^ register `cr7`
   |                  |
   |                  register `cr`

error: cannot use register `r13`: r13 is a reserved register on this target
  --> $DIR/bad-reg.rs:40:18
   |
LL |         asm!("", out("r13") _);
   |                  ^^^^^^^^^^^^

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:67:27
   |
LL |         asm!("", in("v0") x); // FIXME: should be ok if vsx is available
   |                           ^
   |
   = note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:70:28
   |
LL |         asm!("", out("v0") x); // FIXME: should be ok if vsx is available
   |                            ^
   |
   = note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:78:35
   |
LL |         asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
   |                                   ^
   |
   = note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:100:27
   |
LL |         asm!("", in("cr") x);
   |                           ^
   |
   = note: register class `cr` supports these types: 

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:103:28
   |
LL |         asm!("", out("cr") x);
   |                            ^
   |
   = note: register class `cr` supports these types: 

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:106:33
   |
LL |         asm!("/* {} */", in(cr) x);
   |                                 ^
   |
   = note: register class `cr` supports these types: 

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:113:28
   |
LL |         asm!("", in("xer") x);
   |                            ^
   |
   = note: register class `xer` supports these types: 

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:116:29
   |
LL |         asm!("", out("xer") x);
   |                             ^
   |
   = note: register class `xer` supports these types: 

error: type `i32` cannot be used with this register class
  --> $DIR/bad-reg.rs:119:34
   |
LL |         asm!("/* {} */", in(xer) x);
   |                                  ^
   |
   = note: register class `xer` supports these types: 

error: aborting due to 34 previous errors

