| 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
|
| +
|
| }
|
|
|