llvm.org GIT mirror llvm / 35ba3b0
[X86][BtVer2] Fix MMX/YMM integer vector nt store schedules MMX was missing and YMM was tagged as a fp nt store git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332269 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Pilgrim 1 year, 5 months ago
5 changed file(s) with 12 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
574574 def JWriteVMOVNTDQSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
575575 let Latency = 2;
576576 }
577 def : InstRW<[JWriteVMOVNTDQSt], (instrs MOVNTDQmr, VMOVNTDQmr)>;
577 def : InstRW<[JWriteVMOVNTDQSt], (instrs MMX_MOVNTQmr, MOVNTDQmr, VMOVNTDQmr)>;
578
579 def JWriteVMOVNTDQYSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
580 let Latency = 2;
581 let ResourceCycles = [2, 2, 2];
582 }
583 def : InstRW<[JWriteVMOVNTDQYSt], (instrs VMOVNTDQYmr)>;
578584
579585 def JWriteMOVNTSt: SchedWriteRes<[JFPU1, JSTC, JSAGU]> {
580586 let Latency = 3;
585591 let Latency = 3;
586592 let ResourceCycles = [2, 2, 2];
587593 }
588 def : InstRW<[JWriteVMOVNTPYSt], (instrs VMOVNTDQYmr, VMOVNTPDYmr, VMOVNTPSYmr)>;
594 def : InstRW<[JWriteVMOVNTPYSt], (instrs VMOVNTPDYmr, VMOVNTPSYmr)>;
589595
590596 def JWriteVCVTPDY: SchedWriteRes<[JFPU1, JSTC, JFPX]> {
591597 let Latency = 6;
28632863 ; BTVER2-LABEL: test_movntdq:
28642864 ; BTVER2: # %bb.0:
28652865 ; BTVER2-NEXT: #APP
2866 ; BTVER2-NEXT: vmovntdq %ymm0, (%rdi) # sched: [3:2.00]
2866 ; BTVER2-NEXT: vmovntdq %ymm0, (%rdi) # sched: [2:2.00]
28672867 ; BTVER2-NEXT: #NO_APP
28682868 ; BTVER2-NEXT: retq # sched: [4:1.00]
28692869 ;
877877 ;
878878 ; BTVER2-LABEL: test_movntq:
879879 ; BTVER2: # %bb.0:
880 ; BTVER2-NEXT: movntq %mm0, (%rdi) # sched: [1:1.00]
880 ; BTVER2-NEXT: movntq %mm0, (%rdi) # sched: [2:1.00]
881881 ; BTVER2-NEXT: retq # sched: [4:1.00]
882882 ;
883883 ; ZNVER1-LABEL: test_movntq:
12861286 # CHECK-NEXT: 1 3 1.00 vmovmskps %xmm0, %ecx
12871287 # CHECK-NEXT: 1 3 1.00 vmovmskps %ymm0, %ecx
12881288 # CHECK-NEXT: 1 2 1.00 * vmovntdq %xmm0, (%rax)
1289 # CHECK-NEXT: 1 3 2.00 * vmovntdq %ymm0, (%rax)
1289 # CHECK-NEXT: 1 2 2.00 * vmovntdq %ymm0, (%rax)
12901290 # CHECK-NEXT: 1 5 1.00 * vmovntdqa (%rax), %xmm2
12911291 # CHECK-NEXT: 1 5 1.00 * vmovntdqa (%rax), %ymm2
12921292 # CHECK-NEXT: 1 3 1.00 * vmovntpd %xmm0, (%rax)
250250 # CHECK-NEXT: 1 6 1.00 * movlps (%rax), %xmm2
251251 # CHECK-NEXT: 1 3 1.00 movmskps %xmm0, %ecx
252252 # CHECK-NEXT: 1 3 1.00 * movntps %xmm0, (%rax)
253 # CHECK-NEXT: 1 1 1.00 * * * movntq %mm0, (%rax)
253 # CHECK-NEXT: 1 2 1.00 * * * movntq %mm0, (%rax)
254254 # CHECK-NEXT: 1 1 0.50 movss %xmm0, %xmm2
255255 # CHECK-NEXT: 1 1 1.00 * movss %xmm0, (%rax)
256256 # CHECK-NEXT: 1 5 1.00 * movss (%rax), %xmm2