Index: tests_lit/llvm2ice_tests/nop-insertion.ll |
diff --git a/tests_lit/llvm2ice_tests/nop-insertion.ll b/tests_lit/llvm2ice_tests/nop-insertion.ll |
index 197ddd32f3cb808b5429e2eced2ffc42e120b1ec..160d9336214a50e0acab40f8c987651e2d90e457 100644 |
--- a/tests_lit/llvm2ice_tests/nop-insertion.ll |
+++ b/tests_lit/llvm2ice_tests/nop-insertion.ll |
@@ -4,6 +4,7 @@ |
; Use filetype=asm because this currently depends on the # variant |
; assembler comment. |
+ |
; RUN: %p2i -i %s --filetype=asm -a -sz-seed=1 -nop-insertion \ |
; RUN: -nop-insertion-percentage=50 -max-nops-per-instruction=1 \ |
; RUN: | FileCheck %s --check-prefix=PROB50 |
@@ -13,88 +14,121 @@ |
; RUN: %p2i -i %s --filetype=asm -a -sz-seed=1 -nop-insertion \ |
; RUN: -nop-insertion-percentage=50 -max-nops-per-instruction=2 \ |
; RUN: | FileCheck %s --check-prefix=MAXNOPS2 |
+; RUN: %p2i -i %s --filetype=asm -a -sz-seed=1 -nop-insertion -sandbox\ |
+; RUN: -nop-insertion-percentage=50 -max-nops-per-instruction=1 \ |
+; RUN: | FileCheck %s --check-prefix=SANDBOX50 |
+ |
define <4 x i32> @mul_v4i32(<4 x i32> %a, <4 x i32> %b) { |
entry: |
%res = mul <4 x i32> %a, %b |
ret <4 x i32> %res |
+ |
; PROB50-LABEL: mul_v4i32 |
-; PROB50: nop # variant = 3 |
-; PROB50: subl $60, %esp |
; PROB50: nop # variant = 4 |
+; PROB50: subl $60, %esp |
; PROB50: movups %xmm0, 32(%esp) |
-; PROB50: movups %xmm1, 16(%esp) |
; PROB50: nop # variant = 0 |
-; PROB50: movups 32(%esp), %xmm0 |
+; PROB50: movups %xmm1, 16(%esp) |
; PROB50: nop # variant = 4 |
+; PROB50: movups 32(%esp), %xmm0 |
; PROB50: pshufd $49, 32(%esp), %xmm1 |
; PROB50: pshufd $49, 16(%esp), %xmm2 |
; PROB50: pmuludq 16(%esp), %xmm0 |
-; PROB50: pmuludq %xmm2, %xmm1 |
; PROB50: nop # variant = 0 |
+; PROB50: pmuludq %xmm2, %xmm1 |
; PROB50: shufps $136, %xmm1, %xmm0 |
-; PROB50: pshufd $216, %xmm0, %xmm0 |
; PROB50: nop # variant = 2 |
+; PROB50: pshufd $216, %xmm0, %xmm0 |
; PROB50: movups %xmm0, (%esp) |
; PROB50: movups (%esp), %xmm0 |
-; PROB50: addl $60, %esp |
; PROB50: nop # variant = 0 |
+; PROB50: addl $60, %esp |
+; PROB50: nop # variant = 3 |
; PROB50: ret |
; PROB90-LABEL: mul_v4i32 |
-; PROB90: nop # variant = 3 |
-; PROB90: subl $60, %esp |
; PROB90: nop # variant = 4 |
-; PROB90: movups %xmm0, 32(%esp) |
+; PROB90: subl $60, %esp |
; PROB90: nop # variant = 3 |
-; PROB90: movups %xmm1, 16(%esp) |
+; PROB90: movups %xmm0, 32(%esp) |
; PROB90: nop # variant = 2 |
-; PROB90: movups 32(%esp), %xmm0 |
+; PROB90: movups %xmm1, 16(%esp) |
; PROB90: nop # variant = 3 |
-; PROB90: pshufd $49, 32(%esp), %xmm1 |
+; PROB90: movups 32(%esp), %xmm0 |
; PROB90: nop # variant = 4 |
-; PROB90: pshufd $49, 16(%esp), %xmm2 |
+; PROB90: pshufd $49, 32(%esp), %xmm1 |
; PROB90: nop # variant = 0 |
-; PROB90: pmuludq 16(%esp), %xmm0 |
+; PROB90: pshufd $49, 16(%esp), %xmm2 |
; PROB90: nop # variant = 2 |
-; PROB90: pmuludq %xmm2, %xmm1 |
+; PROB90: pmuludq 16(%esp), %xmm0 |
; PROB90: nop # variant = 3 |
-; PROB90: shufps $136, %xmm1, %xmm0 |
+; PROB90: pmuludq %xmm2, %xmm1 |
; PROB90: nop # variant = 4 |
-; PROB90: pshufd $216, %xmm0, %xmm0 |
+; PROB90: shufps $136, %xmm1, %xmm0 |
; PROB90: nop # variant = 2 |
-; PROB90: movups %xmm0, (%esp) |
+; PROB90: pshufd $216, %xmm0, %xmm0 |
; PROB90: nop # variant = 4 |
-; PROB90: movups (%esp), %xmm0 |
+; PROB90: movups %xmm0, (%esp) |
; PROB90: nop # variant = 2 |
+; PROB90: movups (%esp), %xmm0 |
+; PROB90: nop # variant = 3 |
; PROB90: addl $60, %esp |
; PROB90: nop # variant = 3 |
; PROB90: ret |
; MAXNOPS2-LABEL: mul_v4i32 |
-; MAXNOPS2: subl $60, %esp |
; MAXNOPS2: nop # variant = 4 |
-; MAXNOPS2: movups %xmm0, 32(%esp) |
+; MAXNOPS2: subl $60, %esp |
; MAXNOPS2: nop # variant = 0 |
; MAXNOPS2: nop # variant = 4 |
+; MAXNOPS2: movups %xmm0, 32(%esp) |
; MAXNOPS2: movups %xmm1, 16(%esp) |
-; MAXNOPS2: movups 32(%esp), %xmm0 |
; MAXNOPS2: nop # variant = 0 |
-; MAXNOPS2: pshufd $49, 32(%esp), %xmm1 |
+; MAXNOPS2: movups 32(%esp), %xmm0 |
; MAXNOPS2: nop # variant = 2 |
+; MAXNOPS2: pshufd $49, 32(%esp), %xmm1 |
; MAXNOPS2: pshufd $49, 16(%esp), %xmm2 |
-; MAXNOPS2: pmuludq 16(%esp), %xmm0 |
; MAXNOPS2: nop # variant = 0 |
; MAXNOPS2: nop # variant = 3 |
+; MAXNOPS2: pmuludq 16(%esp), %xmm0 |
; MAXNOPS2: pmuludq %xmm2, %xmm1 |
; MAXNOPS2: shufps $136, %xmm1, %xmm0 |
-; MAXNOPS2: pshufd $216, %xmm0, %xmm0 |
; MAXNOPS2: nop # variant = 3 |
-; MAXNOPS2: movups %xmm0, (%esp) |
+; MAXNOPS2: pshufd $216, %xmm0, %xmm0 |
; MAXNOPS2: nop # variant = 0 |
-; MAXNOPS2: movups (%esp), %xmm0 |
+; MAXNOPS2: movups %xmm0, (%esp) |
; MAXNOPS2: nop # variant = 2 |
-; MAXNOPS2: addl $60, %esp |
+; MAXNOPS2: movups (%esp), %xmm0 |
; MAXNOPS2: nop # variant = 4 |
+; MAXNOPS2: addl $60, %esp |
; MAXNOPS2: ret |
+ |
+; SANDBOX50-LABEL: mul_v4i32 |
+; SANDBOX50: nop # variant = 4 |
+; SANDBOX50: subl $60, %esp |
+; SANDBOX50: movups %xmm0, 32(%esp) |
+; SANDBOX50: nop # variant = 0 |
+; SANDBOX50: movups %xmm1, 16(%esp) |
+; SANDBOX50: nop # variant = 4 |
+; SANDBOX50: movups 32(%esp), %xmm0 |
+; SANDBOX50: pshufd $49, 32(%esp), %xmm1 |
+; SANDBOX50: pshufd $49, 16(%esp), %xmm2 |
+; SANDBOX50: pmuludq 16(%esp), %xmm0 |
+; SANDBOX50: nop # variant = 0 |
+; SANDBOX50: pmuludq %xmm2, %xmm1 |
+; SANDBOX50: shufps $136, %xmm1, %xmm0 |
+; SANDBOX50: nop # variant = 2 |
+; SANDBOX50: pshufd $216, %xmm0, %xmm0 |
+; SANDBOX50: movups %xmm0, (%esp) |
+; SANDBOX50: movups (%esp), %xmm0 |
+; SANDBOX50: nop # variant = 0 |
+; SANDBOX50: addl $60, %esp |
+; SANDBOX50: nop # variant = 3 |
+; SANDBOX50: pop %ecx |
+; SANDBOX50: .bundle_lock |
+; SANDBOX50: andl $-32, %ecx |
+; SANDBOX50: jmp *%ecx |
+; SANDBOX50: .bundle_unlock |
+ |
} |