1 ; REQUIRES: allow_dump 2 3 ; RUN: %p2i -i %s --filetype=asm --assemble --disassemble --target=mips32 \ 4 ; RUN: -a -sz-seed=1 -nop-insertion \ 5 ; RUN: -nop-insertion-percentage=50 -max-nops-per-instruction=1 \ 6 ; RUN: | FileCheck %s --check-prefix=MIPS32P50N1 7 ; RUN: %p2i -i %s --filetype=asm --assemble --disassemble --target=mips32 \ 8 ; RUN: -a -sz-seed=1 -nop-insertion \ 9 ; RUN: -nop-insertion-percentage=110 -max-nops-per-instruction=2 \ 10 ; RUN: | FileCheck %s --check-prefix=MIPS32P110N2 11 12 13 define internal i32 @nopInsertion(i32 %a, i32 %b, i32 %c) { 14 entry: 15 %a1 = add i32 %a, 1 16 %b1 = add i32 %b, 2 17 %c1 = add i32 %c, 3 18 %a2 = sub i32 %a1, 1 19 %b2 = sub i32 %b1, 2 20 %c2 = sub i32 %c1, 3 21 %a3 = mul i32 %a2, %b2 22 %b3 = mul i32 %a3, %c2 23 ret i32 %b3 24 } 25 26 ; MIPS32P50N1-LABEL: nopInsertion 27 ; MIPS32P50N1: nop 28 ; MIPS32P50N1: addiu {{.*}} 29 ; MIPS32P50N1: sw {{.*}} 30 ; MIPS32P50N1: nop 31 ; MIPS32P50N1: sw {{.*}} 32 ; MIPS32P50N1: nop 33 ; MIPS32P50N1: sw {{.*}} 34 ; MIPS32P50N1: lw {{.*}} 35 ; MIPS32P50N1: addiu {{.*}},1 36 ; MIPS32P50N1: nop 37 ; MIPS32P50N1: sw {{.*}} 38 ; MIPS32P50N1: lw {{.*}} 39 ; MIPS32P50N1: nop 40 ; MIPS32P50N1: addiu {{.*}},2 41 ; MIPS32P50N1: nop 42 ; MIPS32P50N1: sw {{.*}} 43 ; MIPS32P50N1: nop 44 ; MIPS32P50N1: lw {{.*}} 45 ; MIPS32P50N1: nop 46 ; MIPS32P50N1: addiu {{.*}},3 47 ; MIPS32P50N1: sw {{.*}} 48 ; MIPS32P50N1: nop 49 ; MIPS32P50N1: lw {{.*}} 50 ; MIPS32P50N1: addiu {{.*}},-1 51 ; MIPS32P50N1: nop 52 ; MIPS32P50N1: sw {{.*}} 53 ; MIPS32P50N1: lw {{.*}} 54 ; MIPS32P50N1: nop 55 ; MIPS32P50N1: addiu {{.*}},-2 56 ; MIPS32P50N1: nop 57 ; MIPS32P50N1: sw {{.*}} 58 ; MIPS32P50N1: lw {{.*}} 59 ; MIPS32P50N1: addiu {{.*}},-3 60 ; MIPS32P50N1: sw {{.*}} 61 ; MIPS32P50N1: lw {{.*}} 62 ; MIPS32P50N1: lw {{.*}} 63 ; MIPS32P50N1: nop 64 ; MIPS32P50N1: mul {{.*}} 65 ; MIPS32P50N1: sw {{.*}} 66 ; MIPS32P50N1: lw {{.*}} 67 ; MIPS32P50N1: nop 68 ; MIPS32P50N1: lw {{.*}} 69 ; MIPS32P50N1: nop 70 ; MIPS32P50N1: mul {{.*}} 71 ; MIPS32P50N1: nop 72 ; MIPS32P50N1: sw {{.*}} 73 ; MIPS32P50N1: nop 74 ; MIPS32P50N1: lw {{.*}} 75 ; MIPS32P50N1: nop 76 ; MIPS32P50N1: addiu {{.*}} 77 ; MIPS32P50N1: jr ra 78 ; MIPS32P50N1: nop 79 80 ; MIPS32P110N2-LABEL: nopInsertion 81 ; MIPS32P110N2: nop 82 ; MIPS32P110N2: nop 83 ; MIPS32P110N2: addiu {{.*}} 84 ; MIPS32P110N2: nop 85 ; MIPS32P110N2: nop 86 ; MIPS32P110N2: sw {{.*}} 87 ; MIPS32P110N2: nop 88 ; MIPS32P110N2: nop 89 ; MIPS32P110N2: sw {{.*}} 90 ; MIPS32P110N2: nop 91 ; MIPS32P110N2: nop 92 ; MIPS32P110N2: sw {{.*}} 93 ; MIPS32P110N2: nop 94 ; MIPS32P110N2: nop 95 ; MIPS32P110N2: lw {{.*}} 96 ; MIPS32P110N2: nop 97 ; MIPS32P110N2: nop 98 ; MIPS32P110N2: addiu {{.*}},1 99 ; MIPS32P110N2: nop 100 ; MIPS32P110N2: nop 101 ; MIPS32P110N2: sw {{.*}} 102 ; MIPS32P110N2: nop 103 ; MIPS32P110N2: nop 104 ; MIPS32P110N2: lw {{.*}} 105 ; MIPS32P110N2: nop 106 ; MIPS32P110N2: nop 107 ; MIPS32P110N2: addiu {{.*}},2 108 ; MIPS32P110N2: nop 109 ; MIPS32P110N2: nop 110 ; MIPS32P110N2: sw {{.*}} 111 ; MIPS32P110N2: nop 112 ; MIPS32P110N2: nop 113 ; MIPS32P110N2: lw {{.*}} 114 ; MIPS32P110N2: nop 115 ; MIPS32P110N2: nop 116 ; MIPS32P110N2: addiu {{.*}},3 117 ; MIPS32P110N2: nop 118 ; MIPS32P110N2: nop 119 ; MIPS32P110N2: sw {{.*}} 120 ; MIPS32P110N2: nop 121 ; MIPS32P110N2: nop 122 ; MIPS32P110N2: lw {{.*}} 123 ; MIPS32P110N2: nop 124 ; MIPS32P110N2: nop 125 ; MIPS32P110N2: addiu {{.*}},-1 126 ; MIPS32P110N2: nop 127 ; MIPS32P110N2: nop 128 ; MIPS32P110N2: sw {{.*}} 129 ; MIPS32P110N2: nop 130 ; MIPS32P110N2: nop 131 ; MIPS32P110N2: lw {{.*}} 132 ; MIPS32P110N2: nop 133 ; MIPS32P110N2: nop 134 ; MIPS32P110N2: addiu {{.*}},-2 135 ; MIPS32P110N2: nop 136 ; MIPS32P110N2: nop 137 ; MIPS32P110N2: sw {{.*}} 138 ; MIPS32P110N2: nop 139 ; MIPS32P110N2: nop 140 ; MIPS32P110N2: lw {{.*}} 141 ; MIPS32P110N2: nop 142 ; MIPS32P110N2: nop 143 ; MIPS32P110N2: addiu {{.*}},-3 144 ; MIPS32P110N2: nop 145 ; MIPS32P110N2: nop 146 ; MIPS32P110N2: sw {{.*}} 147 ; MIPS32P110N2: nop 148 ; MIPS32P110N2: nop 149 ; MIPS32P110N2: lw {{.*}} 150 ; MIPS32P110N2: nop 151 ; MIPS32P110N2: nop 152 ; MIPS32P110N2: lw {{.*}} 153 ; MIPS32P110N2: nop 154 ; MIPS32P110N2: nop 155 ; MIPS32P110N2: mul {{.*}} 156 ; MIPS32P110N2: nop 157 ; MIPS32P110N2: nop 158 ; MIPS32P110N2: sw {{.*}} 159 ; MIPS32P110N2: nop 160 ; MIPS32P110N2: nop 161 ; MIPS32P110N2: lw {{.*}} 162 ; MIPS32P110N2: nop 163 ; MIPS32P110N2: nop 164 ; MIPS32P110N2: lw {{.*}} 165 ; MIPS32P110N2: nop 166 ; MIPS32P110N2: nop 167 ; MIPS32P110N2: mul {{.*}} 168 ; MIPS32P110N2: nop 169 ; MIPS32P110N2: nop 170 ; MIPS32P110N2: sw {{.*}} 171 ; MIPS32P110N2: nop 172 ; MIPS32P110N2: nop 173 ; MIPS32P110N2: lw {{.*}} 174 ; MIPS32P110N2: nop 175 ; MIPS32P110N2: nop 176 ; MIPS32P110N2: addiu {{.*}} 177 ; MIPS32P110N2: nop 178 ; MIPS32P110N2: nop 179 ; MIPS32P110N2: jr ra 180 ; MIPS32P110N2: nop 181 ; MIPS32P110N2: nop 182