|  | ; REQUIRES: allow_dump | 
|  |  | 
|  | ; RUN: %p2i -i %s --filetype=asm --assemble --disassemble --target=mips32 \ | 
|  | ; RUN:    -a -sz-seed=1 -nop-insertion \ | 
|  | ; RUN:    -nop-insertion-percentage=50 -max-nops-per-instruction=1 \ | 
|  | ; RUN:    | FileCheck %s --check-prefix=MIPS32P50N1 | 
|  | ; RUN: %p2i -i %s --filetype=asm --assemble --disassemble --target=mips32 \ | 
|  | ; RUN:    -a -sz-seed=1 -nop-insertion \ | 
|  | ; RUN:    -nop-insertion-percentage=110 -max-nops-per-instruction=2 \ | 
|  | ; RUN:    | FileCheck %s --check-prefix=MIPS32P110N2 | 
|  |  | 
|  |  | 
|  | define internal i32 @nopInsertion(i32 %a, i32 %b, i32 %c) { | 
|  | entry: | 
|  | %a1 = add i32 %a, 1 | 
|  | %b1 = add i32 %b, 2 | 
|  | %c1 = add i32 %c, 3 | 
|  | %a2 = sub i32 %a1, 1 | 
|  | %b2 = sub i32 %b1, 2 | 
|  | %c2 = sub i32 %c1, 3 | 
|  | %a3 = mul i32 %a2, %b2 | 
|  | %b3 = mul i32 %a3, %c2 | 
|  | ret i32 %b3 | 
|  | } | 
|  |  | 
|  | ; MIPS32P50N1-LABEL: nopInsertion | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: addiu {{.*}} | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: addiu {{.*}},1 | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: addiu {{.*}},2 | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: addiu {{.*}},3 | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: addiu {{.*}},-1 | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: addiu {{.*}},-2 | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: addiu {{.*}},-3 | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: mul {{.*}} | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: mul {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: sw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: lw {{.*}} | 
|  | ; MIPS32P50N1: nop | 
|  | ; MIPS32P50N1: addiu {{.*}} | 
|  | ; MIPS32P50N1: jr ra | 
|  | ; MIPS32P50N1: nop | 
|  |  | 
|  | ; MIPS32P110N2-LABEL: nopInsertion | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},1 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},2 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},3 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},-1 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},-2 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}},-3 | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: mul {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: mul {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: sw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: lw {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: addiu {{.*}} | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: jr ra | 
|  | ; MIPS32P110N2: nop | 
|  | ; MIPS32P110N2: nop |