Index: lib/Target/X86/X86ScheduleBtVer2.td =================================================================== --- lib/Target/X86/X86ScheduleBtVer2.td +++ lib/Target/X86/X86ScheduleBtVer2.td @@ -135,6 +135,30 @@ defm : JWriteResIntPair; +def WriteSHLDrri : SchedWriteRes<[JALU01]> { + let Latency = 3; + let ResourceCycles = [6]; + let NumMicroOps = 6; +} +def: InstRW<[WriteSHLDrri], (instregex "SHLD(16|32|64)rri8")>; +def: InstRW<[WriteSHLDrri], (instregex "SHRD(16|32|64)rri8")>; + +def WriteSHLDrrCL : SchedWriteRes<[JALU01]> { + let Latency = 4; + let ResourceCycles = [8]; + let NumMicroOps = 7; +} +def: InstRW<[WriteSHLDrrCL], (instregex "SHLD(16|32|64)rrCL")>; +def: InstRW<[WriteSHLDrrCL], (instregex "SHRD(16|32|64)rrCL")>; + +def WriteSHLDLd : SchedWriteRes<[JALU01]> { + let Latency = 9; + let ResourceCycles = [22]; + let NumMicroOps = 8; +} +def: InstRW<[WriteSHLDLd], (instregex "SHLD(16|32|64)mr(i8|CL)")>; +def: InstRW<[WriteSHLDLd], (instregex "SHRD(16|32|64)mr(i8|CL)")>; + //////////////////////////////////////////////////////////////////////////////// // Loads, stores, and moves, not folded with other operations. // FIXME: Split x86 and SSE load/store/moves @@ -142,7 +166,7 @@ def : WriteRes { let Latency = 5; } def : WriteRes; -def : WriteRes; +def : WriteRes; //////////////////////////////////////////////////////////////////////////////// // Idioms that clear a register, like xorps %xmm0, %xmm0. @@ -372,6 +396,15 @@ def : WriteRes; //////////////////////////////////////////////////////////////////////////////// +// RET instructions. +//////////////////////////////////////////////////////////////////////////////// + +def JWriteRET : SchedWriteRes<[JALU01]> { + let ResourceCycles = [2]; +} +def : InstRW<[JWriteRET], (instregex "RET(Q|W|L)?")>; + +//////////////////////////////////////////////////////////////////////////////// // SSE4.1 instructions. //////////////////////////////////////////////////////////////////////////////// Index: test/CodeGen/X86/aes-schedule.ll =================================================================== --- test/CodeGen/X86/aes-schedule.ll +++ test/CodeGen/X86/aes-schedule.ll @@ -51,7 +51,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaesdec %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaesdec (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aesdec: ; ZNVER1: # BB#0: @@ -106,7 +106,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaesdeclast %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaesdeclast (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aesdeclast: ; ZNVER1: # BB#0: @@ -161,7 +161,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaesenc %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaesenc (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aesenc: ; ZNVER1: # BB#0: @@ -216,7 +216,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaesenclast %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaesenclast (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aesenclast: ; ZNVER1: # BB#0: @@ -278,7 +278,7 @@ ; BTVER2-NEXT: vaesimc (%rdi), %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vaesimc %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aesimc: ; ZNVER1: # BB#0: @@ -342,7 +342,7 @@ ; BTVER2-NEXT: vaeskeygenassist $7, (%rdi), %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vaeskeygenassist $7, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aeskeygenassist: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/avx-schedule.ll =================================================================== --- test/CodeGen/X86/avx-schedule.ll +++ test/CodeGen/X86/avx-schedule.ll @@ -50,7 +50,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddpd (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addpd: ; ZNVER1: # BB#0: @@ -104,7 +104,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddps (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addps: ; ZNVER1: # BB#0: @@ -158,7 +158,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddsubpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddsubpd (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addsubpd: ; ZNVER1: # BB#0: @@ -213,7 +213,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddsubps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddsubps (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addsubps: ; ZNVER1: # BB#0: @@ -275,7 +275,7 @@ ; BTVER2-NEXT: vandnpd %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vandnpd (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andnotpd: ; ZNVER1: # BB#0: @@ -344,7 +344,7 @@ ; BTVER2-NEXT: vandnps %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vandnps (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andnotps: ; ZNVER1: # BB#0: @@ -413,7 +413,7 @@ ; BTVER2-NEXT: vandpd %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vandpd (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andpd: ; ZNVER1: # BB#0: @@ -480,7 +480,7 @@ ; BTVER2-NEXT: vandps %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vandps (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andps: ; ZNVER1: # BB#0: @@ -547,7 +547,7 @@ ; BTVER2-NEXT: vblendpd {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3] sched: [1:0.50] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vblendpd {{.*#+}} ymm0 = ymm0[0],mem[1,2],ymm0[3] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendpd: ; ZNVER1: # BB#0: @@ -603,7 +603,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3,4,5,6,7] sched: [1:0.50] ; BTVER2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],mem[2],ymm0[3],mem[4,5,6],ymm0[7] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendps: ; ZNVER1: # BB#0: @@ -657,7 +657,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendvpd %ymm2, %ymm1, %ymm0, %ymm0 # sched: [3:3.00] ; BTVER2-NEXT: vblendvpd %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:3.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendvpd: ; ZNVER1: # BB#0: @@ -712,7 +712,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendvps %ymm2, %ymm1, %ymm0, %ymm0 # sched: [3:3.00] ; BTVER2-NEXT: vblendvps %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:3.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendvps: ; ZNVER1: # BB#0: @@ -760,7 +760,7 @@ ; BTVER2-LABEL: test_broadcastf128: ; BTVER2: # BB#0: ; BTVER2-NEXT: vbroadcastf128 {{.*#+}} ymm0 = mem[0,1,0,1] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_broadcastf128: ; ZNVER1: # BB#0: @@ -805,7 +805,7 @@ ; BTVER2-LABEL: test_broadcastsd_ymm: ; BTVER2: # BB#0: ; BTVER2-NEXT: vbroadcastsd (%rdi), %ymm0 # sched: [6:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_broadcastsd_ymm: ; ZNVER1: # BB#0: @@ -851,7 +851,7 @@ ; BTVER2-LABEL: test_broadcastss: ; BTVER2: # BB#0: ; BTVER2-NEXT: vbroadcastss (%rdi), %xmm0 # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_broadcastss: ; ZNVER1: # BB#0: @@ -897,7 +897,7 @@ ; BTVER2-LABEL: test_broadcastss_ymm: ; BTVER2: # BB#0: ; BTVER2-NEXT: vbroadcastss (%rdi), %ymm0 # sched: [6:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_broadcastss_ymm: ; ZNVER1: # BB#0: @@ -959,7 +959,7 @@ ; BTVER2-NEXT: vcmpeqpd %ymm1, %ymm0, %ymm1 # sched: [2:2.00] ; BTVER2-NEXT: vcmpeqpd (%rdi), %ymm0, %ymm0 # sched: [7:2.00] ; BTVER2-NEXT: vorpd %ymm0, %ymm1, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmppd: ; ZNVER1: # BB#0: @@ -1027,7 +1027,7 @@ ; BTVER2-NEXT: vcmpeqps %ymm1, %ymm0, %ymm1 # sched: [2:2.00] ; BTVER2-NEXT: vcmpeqps (%rdi), %ymm0, %ymm0 # sched: [7:2.00] ; BTVER2-NEXT: vorps %ymm0, %ymm1, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmpps: ; ZNVER1: # BB#0: @@ -1093,7 +1093,7 @@ ; BTVER2-NEXT: vcvtdq2pd (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vcvtdq2pd %xmm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtdq2pd: ; ZNVER1: # BB#0: @@ -1158,7 +1158,7 @@ ; BTVER2-NEXT: vcvtdq2ps (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vcvtdq2ps %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtdq2ps: ; ZNVER1: # BB#0: @@ -1221,7 +1221,7 @@ ; BTVER2-NEXT: vcvtpd2dqy (%rdi), %xmm1 # sched: [11:2.00] ; BTVER2-NEXT: vcvtpd2dq %ymm0, %xmm0 # sched: [6:2.00] ; BTVER2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpd2dq: ; ZNVER1: # BB#0: @@ -1285,7 +1285,7 @@ ; BTVER2-NEXT: vcvttpd2dqy (%rdi), %xmm1 # sched: [11:2.00] ; BTVER2-NEXT: vcvttpd2dq %ymm0, %xmm0 # sched: [6:2.00] ; BTVER2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttpd2dq: ; ZNVER1: # BB#0: @@ -1348,7 +1348,7 @@ ; BTVER2-NEXT: vcvtpd2psy (%rdi), %xmm1 # sched: [11:2.00] ; BTVER2-NEXT: vcvtpd2ps %ymm0, %xmm0 # sched: [6:2.00] ; BTVER2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpd2ps: ; ZNVER1: # BB#0: @@ -1411,7 +1411,7 @@ ; BTVER2-NEXT: vcvtps2dq (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vcvtps2dq %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vorpd %ymm1, %ymm0, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtps2dq: ; ZNVER1: # BB#0: @@ -1475,7 +1475,7 @@ ; BTVER2-NEXT: vcvttps2dq (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vcvttps2dq %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vorps %ymm1, %ymm0, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttps2dq: ; ZNVER1: # BB#0: @@ -1531,7 +1531,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivpd %ymm1, %ymm0, %ymm0 # sched: [38:38.00] ; BTVER2-NEXT: vdivpd (%rdi), %ymm0, %ymm0 # sched: [43:38.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divpd: ; ZNVER1: # BB#0: @@ -1585,7 +1585,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivps %ymm1, %ymm0, %ymm0 # sched: [38:38.00] ; BTVER2-NEXT: vdivps (%rdi), %ymm0, %ymm0 # sched: [43:38.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divps: ; ZNVER1: # BB#0: @@ -1639,7 +1639,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdpps $7, %ymm1, %ymm0, %ymm0 # sched: [12:6.00] ; BTVER2-NEXT: vdpps $7, (%rdi), %ymm0, %ymm0 # sched: [17:6.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_dpps: ; ZNVER1: # BB#0: @@ -1700,7 +1700,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vextractf128 $1, %ymm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vextractf128 $1, %ymm1, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_extractf128: ; ZNVER1: # BB#0: @@ -1755,7 +1755,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vhaddpd (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_haddpd: ; ZNVER1: # BB#0: @@ -1810,7 +1810,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vhaddps (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_haddps: ; ZNVER1: # BB#0: @@ -1865,7 +1865,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhsubpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vhsubpd (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_hsubpd: ; ZNVER1: # BB#0: @@ -1920,7 +1920,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhsubps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vhsubps (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_hsubps: ; ZNVER1: # BB#0: @@ -1982,7 +1982,7 @@ ; BTVER2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm1 # sched: [1:0.50] ; BTVER2-NEXT: vinsertf128 $1, (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_insertf128: ; ZNVER1: # BB#0: @@ -2033,7 +2033,7 @@ ; BTVER2-LABEL: test_lddqu: ; BTVER2: # BB#0: ; BTVER2-NEXT: vlddqu (%rdi), %ymm0 # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lddqu: ; ZNVER1: # BB#0: @@ -2092,7 +2092,7 @@ ; BTVER2-NEXT: vmaskmovpd (%rdi), %xmm0, %xmm2 # sched: [6:1.00] ; BTVER2-NEXT: vmaskmovpd %xmm1, %xmm0, (%rdi) # sched: [6:2.00] ; BTVER2-NEXT: vmovapd %xmm2, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovpd: ; ZNVER1: # BB#0: @@ -2155,7 +2155,7 @@ ; BTVER2-NEXT: vmaskmovpd (%rdi), %ymm0, %ymm2 # sched: [6:2.00] ; BTVER2-NEXT: vmaskmovpd %ymm1, %ymm0, (%rdi) # sched: [6:2.00] ; BTVER2-NEXT: vmovapd %ymm2, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovpd_ymm: ; ZNVER1: # BB#0: @@ -2218,7 +2218,7 @@ ; BTVER2-NEXT: vmaskmovps (%rdi), %xmm0, %xmm2 # sched: [6:1.00] ; BTVER2-NEXT: vmaskmovps %xmm1, %xmm0, (%rdi) # sched: [6:2.00] ; BTVER2-NEXT: vmovaps %xmm2, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovps: ; ZNVER1: # BB#0: @@ -2281,7 +2281,7 @@ ; BTVER2-NEXT: vmaskmovps (%rdi), %ymm0, %ymm2 # sched: [6:2.00] ; BTVER2-NEXT: vmaskmovps %ymm1, %ymm0, (%rdi) # sched: [6:2.00] ; BTVER2-NEXT: vmovaps %ymm2, %ymm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovps_ymm: ; ZNVER1: # BB#0: @@ -2337,7 +2337,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxpd %ymm1, %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vmaxpd (%rdi), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxpd: ; ZNVER1: # BB#0: @@ -2392,7 +2392,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxps %ymm1, %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vmaxps (%rdi), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxps: ; ZNVER1: # BB#0: @@ -2447,7 +2447,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminpd %ymm1, %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vminpd (%rdi), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minpd: ; ZNVER1: # BB#0: @@ -2502,7 +2502,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminps %ymm1, %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vminps (%rdi), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minps: ; ZNVER1: # BB#0: @@ -2564,7 +2564,7 @@ ; BTVER2-NEXT: vmovapd (%rdi), %ymm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovapd %ymm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movapd: ; ZNVER1: # BB#0: @@ -2626,7 +2626,7 @@ ; BTVER2-NEXT: vmovaps (%rdi), %ymm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovaps %ymm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movaps: ; ZNVER1: # BB#0: @@ -2688,7 +2688,7 @@ ; BTVER2-NEXT: vmovddup {{.*#+}} ymm1 = mem[0,0,2,2] sched: [5:1.00] ; BTVER2-NEXT: vmovddup {{.*#+}} ymm0 = ymm0[0,0,2,2] sched: [1:0.50] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movddup: ; ZNVER1: # BB#0: @@ -2743,7 +2743,7 @@ ; BTVER2-LABEL: test_movmskpd: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovmskpd %ymm0, %eax # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movmskpd: ; ZNVER1: # BB#0: @@ -2795,7 +2795,7 @@ ; BTVER2-LABEL: test_movmskps: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovmskps %ymm0, %eax # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movmskps: ; ZNVER1: # BB#0: @@ -2861,7 +2861,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: vmovntdq %ymm0, (%rdi) # sched: [3:2.00] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntdq: ; ZNVER1: # BB#0: @@ -2915,7 +2915,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddpd %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovntpd %ymm0, (%rdi) # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntpd: ; ZNVER1: # BB#0: @@ -2968,7 +2968,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddps %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovntps %ymm0, (%rdi) # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntps: ; ZNVER1: # BB#0: @@ -3028,7 +3028,7 @@ ; BTVER2-NEXT: vmovshdup {{.*#+}} ymm1 = mem[1,1,3,3,5,5,7,7] sched: [5:1.00] ; BTVER2-NEXT: vmovshdup {{.*#+}} ymm0 = ymm0[1,1,3,3,5,5,7,7] sched: [1:0.50] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movshdup: ; ZNVER1: # BB#0: @@ -3091,7 +3091,7 @@ ; BTVER2-NEXT: vmovsldup {{.*#+}} ymm1 = mem[0,0,2,2,4,4,6,6] sched: [5:1.00] ; BTVER2-NEXT: vmovsldup {{.*#+}} ymm0 = ymm0[0,0,2,2,4,4,6,6] sched: [1:0.50] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movsldup: ; ZNVER1: # BB#0: @@ -3156,7 +3156,7 @@ ; BTVER2-NEXT: vmovupd (%rdi), %ymm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovupd %ymm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movupd: ; ZNVER1: # BB#0: @@ -3220,7 +3220,7 @@ ; BTVER2-NEXT: vmovups (%rdi), %ymm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmovups %ymm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movups: ; ZNVER1: # BB#0: @@ -3275,7 +3275,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulpd %ymm1, %ymm0, %ymm0 # sched: [4:4.00] ; BTVER2-NEXT: vmulpd (%rdi), %ymm0, %ymm0 # sched: [9:4.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulpd: ; ZNVER1: # BB#0: @@ -3329,7 +3329,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulps %ymm1, %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vmulps (%rdi), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulps: ; ZNVER1: # BB#0: @@ -3390,7 +3390,7 @@ ; BTVER2-NEXT: vorpd %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vorpd (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: orpd: ; ZNVER1: # BB#0: @@ -3457,7 +3457,7 @@ ; BTVER2-NEXT: vorps %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vorps (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_orps: ; ZNVER1: # BB#0: @@ -3524,7 +3524,7 @@ ; BTVER2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm0[2,3],ymm1[0,1] sched: [1:0.50] ; BTVER2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],mem[0,1] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_perm2f128: ; ZNVER1: # BB#0: @@ -3587,7 +3587,7 @@ ; BTVER2-NEXT: vpermilpd {{.*#+}} xmm1 = mem[1,0] sched: [6:1.00] ; BTVER2-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0] sched: [1:0.50] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilpd: ; ZNVER1: # BB#0: @@ -3650,7 +3650,7 @@ ; BTVER2-NEXT: vpermilpd {{.*#+}} ymm1 = mem[1,0,2,3] sched: [6:1.00] ; BTVER2-NEXT: vpermilpd {{.*#+}} ymm0 = ymm0[1,0,2,3] sched: [1:0.50] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilpd_ymm: ; ZNVER1: # BB#0: @@ -3713,7 +3713,7 @@ ; BTVER2-NEXT: vpermilps {{.*#+}} xmm1 = mem[3,2,1,0] sched: [6:1.00] ; BTVER2-NEXT: vpermilps {{.*#+}} xmm0 = xmm0[3,2,1,0] sched: [1:0.50] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilps: ; ZNVER1: # BB#0: @@ -3776,7 +3776,7 @@ ; BTVER2-NEXT: vpermilps {{.*#+}} ymm1 = mem[3,2,1,0,7,6,5,4] sched: [6:1.00] ; BTVER2-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[3,2,1,0,7,6,5,4] sched: [1:0.50] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilps_ymm: ; ZNVER1: # BB#0: @@ -3832,7 +3832,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpermilpd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpermilpd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilvarpd: ; ZNVER1: # BB#0: @@ -3887,7 +3887,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpermilpd %ymm1, %ymm0, %ymm0 # sched: [3:3.00] ; BTVER2-NEXT: vpermilpd (%rdi), %ymm0, %ymm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilvarpd_ymm: ; ZNVER1: # BB#0: @@ -3942,7 +3942,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpermilps %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpermilps (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilvarps: ; ZNVER1: # BB#0: @@ -3997,7 +3997,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpermilps %ymm1, %ymm0, %ymm0 # sched: [3:3.00] ; BTVER2-NEXT: vpermilps (%rdi), %ymm0, %ymm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_permilvarps_ymm: ; ZNVER1: # BB#0: @@ -4059,7 +4059,7 @@ ; BTVER2-NEXT: vrcpps (%rdi), %ymm1 # sched: [7:2.00] ; BTVER2-NEXT: vrcpps %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rcpps: ; ZNVER1: # BB#0: @@ -4123,7 +4123,7 @@ ; BTVER2-NEXT: vroundpd $7, (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vroundpd $7, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundpd: ; ZNVER1: # BB#0: @@ -4187,7 +4187,7 @@ ; BTVER2-NEXT: vroundps $7, (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vroundps $7, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundps: ; ZNVER1: # BB#0: @@ -4251,7 +4251,7 @@ ; BTVER2-NEXT: vrsqrtps (%rdi), %ymm1 # sched: [7:2.00] ; BTVER2-NEXT: vrsqrtps %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rsqrtps: ; ZNVER1: # BB#0: @@ -4315,7 +4315,7 @@ ; BTVER2-NEXT: vshufpd {{.*#+}} ymm0 = ymm0[1],ymm1[0],ymm0[2],ymm1[3] sched: [1:0.50] ; BTVER2-NEXT: vshufpd {{.*#+}} ymm1 = ymm1[1],mem[0],ymm1[2],mem[3] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_shufpd: ; ZNVER1: # BB#0: @@ -4371,7 +4371,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,0],ymm1[0,0],ymm0[4,4],ymm1[4,4] sched: [1:0.50] ; BTVER2-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,3],mem[0,0],ymm0[4,7],mem[4,4] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_shufps: ; ZNVER1: # BB#0: @@ -4432,7 +4432,7 @@ ; BTVER2-NEXT: vsqrtpd (%rdi), %ymm1 # sched: [59:54.00] ; BTVER2-NEXT: vsqrtpd %ymm0, %ymm0 # sched: [54:54.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtpd: ; ZNVER1: # BB#0: @@ -4496,7 +4496,7 @@ ; BTVER2-NEXT: vsqrtps (%rdi), %ymm1 # sched: [47:42.00] ; BTVER2-NEXT: vsqrtps %ymm0, %ymm0 # sched: [42:42.00] ; BTVER2-NEXT: vaddps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtps: ; ZNVER1: # BB#0: @@ -4553,7 +4553,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vsubpd (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subpd: ; ZNVER1: # BB#0: @@ -4607,7 +4607,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubps %ymm1, %ymm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vsubps (%rdi), %ymm0, %ymm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subps: ; ZNVER1: # BB#0: @@ -4682,7 +4682,7 @@ ; BTVER2-NEXT: setb %al # sched: [1:0.50] ; BTVER2-NEXT: vtestpd (%rdi), %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: adcl $0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_testpd: ; ZNVER1: # BB#0: @@ -4768,7 +4768,7 @@ ; BTVER2-NEXT: setb %al # sched: [1:0.50] ; BTVER2-NEXT: vtestpd (%rdi), %ymm0 # sched: [9:2.00] ; BTVER2-NEXT: adcl $0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_testpd_ymm: ; ZNVER1: # BB#0: @@ -4849,7 +4849,7 @@ ; BTVER2-NEXT: setb %al # sched: [1:0.50] ; BTVER2-NEXT: vtestps (%rdi), %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: adcl $0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_testps: ; ZNVER1: # BB#0: @@ -4935,7 +4935,7 @@ ; BTVER2-NEXT: setb %al # sched: [1:0.50] ; BTVER2-NEXT: vtestps (%rdi), %ymm0 # sched: [9:2.00] ; BTVER2-NEXT: adcl $0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_testps_ymm: ; ZNVER1: # BB#0: @@ -5002,7 +5002,7 @@ ; BTVER2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3] sched: [1:0.50] ; BTVER2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],mem[1],ymm1[3],mem[3] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpckhpd: ; ZNVER1: # BB#0: @@ -5058,7 +5058,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7] sched: [1:0.50] ; BTVER2-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpckhps: ; ZNVER1: # BB#0: @@ -5119,7 +5119,7 @@ ; BTVER2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2] sched: [1:0.50] ; BTVER2-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm1, %ymm0, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpcklpd: ; ZNVER1: # BB#0: @@ -5175,7 +5175,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5] sched: [1:0.50] ; BTVER2-NEXT: vunpcklps {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpcklps: ; ZNVER1: # BB#0: @@ -5236,7 +5236,7 @@ ; BTVER2-NEXT: vxorpd %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vxorpd (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_xorpd: ; ZNVER1: # BB#0: @@ -5303,7 +5303,7 @@ ; BTVER2-NEXT: vxorps %ymm1, %ymm0, %ymm0 # sched: [1:0.50] ; BTVER2-NEXT: vxorps (%rdi), %ymm0, %ymm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_xorps: ; ZNVER1: # BB#0: @@ -5356,7 +5356,7 @@ ; BTVER2-LABEL: test_zeroall: ; BTVER2: # BB#0: ; BTVER2-NEXT: vzeroall # sched: [90:?] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_zeroall: ; ZNVER1: # BB#0: @@ -5401,7 +5401,7 @@ ; BTVER2-LABEL: test_zeroupper: ; BTVER2: # BB#0: ; BTVER2-NEXT: vzeroupper # sched: [46:?] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_zeroupper: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/bmi-schedule.ll =================================================================== --- test/CodeGen/X86/bmi-schedule.ll +++ test/CodeGen/X86/bmi-schedule.ll @@ -51,7 +51,7 @@ ; BTVER2-NEXT: andw (%rdx), %di # sched: [4:1.00] ; BTVER2-NEXT: addl %edi, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andn_i16: ; ZNVER1: # BB#0: @@ -103,7 +103,7 @@ ; BTVER2-NEXT: andnl (%rdx), %edi, %eax # sched: [4:1.00] ; BTVER2-NEXT: andnl %esi, %edi, %ecx # sched: [1:0.50] ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andn_i32: ; ZNVER1: # BB#0: @@ -153,7 +153,7 @@ ; BTVER2-NEXT: andnq (%rdx), %rdi, %rax # sched: [4:1.00] ; BTVER2-NEXT: andnq %rsi, %rdi, %rcx # sched: [1:0.50] ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andn_i64: ; ZNVER1: # BB#0: @@ -203,7 +203,7 @@ ; BTVER2-NEXT: bextrl %edi, (%rdx), %ecx ; BTVER2-NEXT: bextrl %edi, %esi, %eax ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bextr_i32: ; ZNVER1: # BB#0: @@ -253,7 +253,7 @@ ; BTVER2-NEXT: bextrq %rdi, (%rdx), %rcx ; BTVER2-NEXT: bextrq %rdi, %rsi, %rax ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bextr_i64: ; ZNVER1: # BB#0: @@ -303,7 +303,7 @@ ; BTVER2-NEXT: blsil (%rsi), %ecx ; BTVER2-NEXT: blsil %edi, %eax ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsi_i32: ; ZNVER1: # BB#0: @@ -354,7 +354,7 @@ ; BTVER2-NEXT: blsiq (%rsi), %rcx ; BTVER2-NEXT: blsiq %rdi, %rax ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsi_i64: ; ZNVER1: # BB#0: @@ -405,7 +405,7 @@ ; BTVER2-NEXT: blsmskl (%rsi), %ecx ; BTVER2-NEXT: blsmskl %edi, %eax ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsmsk_i32: ; ZNVER1: # BB#0: @@ -456,7 +456,7 @@ ; BTVER2-NEXT: blsmskq (%rsi), %rcx ; BTVER2-NEXT: blsmskq %rdi, %rax ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsmsk_i64: ; ZNVER1: # BB#0: @@ -507,7 +507,7 @@ ; BTVER2-NEXT: blsrl (%rsi), %ecx ; BTVER2-NEXT: blsrl %edi, %eax ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsr_i32: ; ZNVER1: # BB#0: @@ -558,7 +558,7 @@ ; BTVER2-NEXT: blsrq (%rsi), %rcx ; BTVER2-NEXT: blsrq %rdi, %rax ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blsr_i64: ; ZNVER1: # BB#0: @@ -614,7 +614,7 @@ ; BTVER2-NEXT: tzcntw %di, %ax ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cttz_i16: ; ZNVER1: # BB#0: @@ -665,7 +665,7 @@ ; BTVER2-NEXT: tzcntl (%rsi), %ecx ; BTVER2-NEXT: tzcntl %edi, %eax ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cttz_i32: ; ZNVER1: # BB#0: @@ -715,7 +715,7 @@ ; BTVER2-NEXT: tzcntq (%rsi), %rcx ; BTVER2-NEXT: tzcntq %rdi, %rax ; BTVER2-NEXT: orq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cttz_i64: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/f16c-schedule.ll =================================================================== --- test/CodeGen/X86/f16c-schedule.ll +++ test/CodeGen/X86/f16c-schedule.ll @@ -48,7 +48,7 @@ ; BTVER2-NEXT: vcvtph2ps (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtph2ps %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_vcvtph2ps_128: ; ZNVER1: # BB#0: @@ -105,7 +105,7 @@ ; BTVER2-NEXT: vcvtph2ps (%rdi), %ymm1 # sched: [8:2.00] ; BTVER2-NEXT: vcvtph2ps %xmm0, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_vcvtph2ps_256: ; ZNVER1: # BB#0: @@ -156,7 +156,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vcvtps2ph $0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtps2ph $0, %xmm1, (%rdi) # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_vcvtps2ph_128: ; ZNVER1: # BB#0: @@ -211,7 +211,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vcvtps2ph $0, %ymm0, %xmm0 # sched: [6:2.00] ; BTVER2-NEXT: vcvtps2ph $0, %ymm1, (%rdi) # sched: [11:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_vcvtps2ph_256: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/lea32-schedule.ll =================================================================== --- test/CodeGen/X86/lea32-schedule.ll +++ test/CodeGen/X86/lea32-schedule.ll @@ -64,7 +64,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal -24(%rdi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_offset: ; ZNVER1: # BB#0: @@ -128,7 +128,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal 1024(%rdi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_offset_big: ; ZNVER1: # BB#0: @@ -201,7 +201,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal (%rdi,%rsi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add: ; ZNVER1: # BB#0: @@ -279,7 +279,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal 16(%rdi,%rsi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_offset: ; ZNVER1: # BB#0: @@ -363,7 +363,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal -4096(%rdi,%rsi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_offset_big: ; ZNVER1: # BB#0: @@ -429,7 +429,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul: ; ZNVER1: # BB#0: @@ -498,7 +498,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal -32(%rdi,%rdi,2), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul_offset: ; ZNVER1: # BB#0: @@ -573,7 +573,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal 10000(%rdi,%rdi,8), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul_offset_big: ; ZNVER1: # BB#0: @@ -646,7 +646,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal (%rdi,%rsi,2), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale: ; ZNVER1: # BB#0: @@ -725,7 +725,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal 96(%rdi,%rsi,4), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale_offset: ; ZNVER1: # BB#0: @@ -810,7 +810,7 @@ ; BTVER2-NEXT: # kill: %ESI %ESI %RSI ; BTVER2-NEXT: # kill: %EDI %EDI %RDI ; BTVER2-NEXT: leal -1200(%rdi,%rsi,8), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale_offset_big: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/lea64-schedule.ll =================================================================== --- test/CodeGen/X86/lea64-schedule.ll +++ test/CodeGen/X86/lea64-schedule.ll @@ -56,7 +56,7 @@ ; BTVER2-LABEL: test_lea_offset: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq -24(%rdi), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_offset: ; ZNVER1: # BB#0: @@ -111,7 +111,7 @@ ; BTVER2-LABEL: test_lea_offset_big: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq 1024(%rdi), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_offset_big: ; ZNVER1: # BB#0: @@ -167,7 +167,7 @@ ; BTVER2-LABEL: test_lea_add: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq (%rdi,%rsi), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add: ; ZNVER1: # BB#0: @@ -227,7 +227,7 @@ ; BTVER2-LABEL: test_lea_add_offset: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq 16(%rdi,%rsi), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_offset: ; ZNVER1: # BB#0: @@ -293,7 +293,7 @@ ; BTVER2-LABEL: test_lea_add_offset_big: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq -4096(%rdi,%rsi), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_offset_big: ; ZNVER1: # BB#0: @@ -349,7 +349,7 @@ ; BTVER2-LABEL: test_lea_mul: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul: ; ZNVER1: # BB#0: @@ -409,7 +409,7 @@ ; BTVER2-LABEL: test_lea_mul_offset: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq -32(%rdi,%rdi,2), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul_offset: ; ZNVER1: # BB#0: @@ -475,7 +475,7 @@ ; BTVER2-LABEL: test_lea_mul_offset_big: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq 10000(%rdi,%rdi,8), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_mul_offset_big: ; ZNVER1: # BB#0: @@ -531,7 +531,7 @@ ; BTVER2-LABEL: test_lea_add_scale: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq (%rdi,%rsi,2), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale: ; ZNVER1: # BB#0: @@ -592,7 +592,7 @@ ; BTVER2-LABEL: test_lea_add_scale_offset: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq 96(%rdi,%rsi,4), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale_offset: ; ZNVER1: # BB#0: @@ -659,7 +659,7 @@ ; BTVER2-LABEL: test_lea_add_scale_offset_big: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq -1200(%rdi,%rsi,8), %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lea_add_scale_offset_big: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/lzcnt-schedule.ll =================================================================== --- test/CodeGen/X86/lzcnt-schedule.ll +++ test/CodeGen/X86/lzcnt-schedule.ll @@ -46,7 +46,7 @@ ; BTVER2-NEXT: lzcntw %di, %ax ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctlz_i16: ; ZNVER1: # BB#0: @@ -97,7 +97,7 @@ ; BTVER2-NEXT: lzcntl (%rsi), %ecx ; BTVER2-NEXT: lzcntl %edi, %eax ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctlz_i32: ; ZNVER1: # BB#0: @@ -147,7 +147,7 @@ ; BTVER2-NEXT: lzcntq (%rsi), %rcx ; BTVER2-NEXT: lzcntq %rdi, %rax ; BTVER2-NEXT: orq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctlz_i64: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/mmx-schedule.ll =================================================================== --- test/CodeGen/X86/mmx-schedule.ll +++ test/CodeGen/X86/mmx-schedule.ll @@ -81,8 +81,8 @@ ; BTVER2-NEXT: cvtpd2pi (%rdi), %mm1 # sched: [8:1.00] ; BTVER2-NEXT: cvtpd2pi %xmm0, %mm0 # sched: [3:1.00] ; BTVER2-NEXT: por %mm0, %mm1 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpd2pi: ; ZNVER1: # BB#0: @@ -162,7 +162,7 @@ ; BTVER2-NEXT: cvtpi2pd (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: cvtpi2pd %mm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpi2pd: ; ZNVER1: # BB#0: @@ -240,7 +240,7 @@ ; BTVER2-NEXT: cvtpi2ps (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: cvtpi2ps %mm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpi2ps: ; ZNVER1: # BB#0: @@ -326,8 +326,8 @@ ; BTVER2-NEXT: cvtps2pi (%rdi), %mm1 # sched: [8:1.00] ; BTVER2-NEXT: cvtps2pi %xmm0, %mm0 # sched: [3:1.00] ; BTVER2-NEXT: por %mm0, %mm1 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtps2pi: ; ZNVER1: # BB#0: @@ -415,8 +415,8 @@ ; BTVER2-NEXT: cvttpd2pi (%rdi), %mm1 # sched: [8:1.00] ; BTVER2-NEXT: cvttpd2pi %xmm0, %mm0 # sched: [3:1.00] ; BTVER2-NEXT: por %mm0, %mm1 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttpd2pi: ; ZNVER1: # BB#0: @@ -504,8 +504,8 @@ ; BTVER2-NEXT: cvttps2pi (%rdi), %mm1 # sched: [8:1.00] ; BTVER2-NEXT: cvttps2pi %xmm0, %mm0 # sched: [3:1.00] ; BTVER2-NEXT: por %mm0, %mm1 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm1, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttps2pi: ; ZNVER1: # BB#0: @@ -567,7 +567,7 @@ ; BTVER2-LABEL: test_emms: ; BTVER2: # BB#0: ; BTVER2-NEXT: emms -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_emms: ; ZNVER1: # BB#0: @@ -622,7 +622,7 @@ ; BTVER2-LABEL: test_maskmovq: ; BTVER2: # BB#0: ; BTVER2-NEXT: maskmovq %mm1, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovq: ; ZNVER1: # BB#0: @@ -748,17 +748,17 @@ ; ; BTVER2-LABEL: test_movd: ; BTVER2: # BB#0: -; BTVER2-NEXT: vmovd %edi, %xmm0 # sched: [1:0.17] +; BTVER2-NEXT: vmovd %edi, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vmovq %xmm0, -{{[0-9]+}}(%rsp) # sched: [1:1.00] ; BTVER2-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [5:1.00] ; BTVER2-NEXT: movq -{{[0-9]+}}(%rsp), %mm1 # sched: [5:1.00] ; BTVER2-NEXT: vmovlps %xmm0, -{{[0-9]+}}(%rsp) # sched: [1:1.00] ; BTVER2-NEXT: paddd -{{[0-9]+}}(%rsp), %mm1 # sched: [6:1.00] ; BTVER2-NEXT: paddd %mm1, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm1, %ecx # sched: [1:0.17] -; BTVER2-NEXT: movd %mm0, %eax # sched: [1:0.17] +; BTVER2-NEXT: movd %mm1, %ecx # sched: [1:0.50] +; BTVER2-NEXT: movd %mm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: movl %ecx, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movd: ; ZNVER1: # BB#0: @@ -847,10 +847,10 @@ ; ; BTVER2-LABEL: test_movdq2q: ; BTVER2: # BB#0: -; BTVER2-NEXT: movdq2q %xmm0, %mm0 # sched: [1:0.17] +; BTVER2-NEXT: movdq2q %xmm0, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddd %mm0, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movdq2q: ; ZNVER1: # BB#0: @@ -909,7 +909,7 @@ ; BTVER2-LABEL: test_movntq: ; BTVER2: # BB#0: ; BTVER2-NEXT: movntq %mm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntq: ; ZNVER1: # BB#0: @@ -984,7 +984,7 @@ ; BTVER2-NEXT: movq (%rdi), %mm0 # sched: [5:1.00] ; BTVER2-NEXT: paddd %mm0, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: movq %mm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movq: ; ZNVER1: # BB#0: @@ -1043,8 +1043,8 @@ ; ; BTVER2-LABEL: test_movq2dq: ; BTVER2: # BB#0: -; BTVER2-NEXT: movq2dq %mm0, %xmm0 # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movq2dq %mm0, %xmm0 # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movq2dq: ; ZNVER1: # BB#0: @@ -1116,8 +1116,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pabsb (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: pabsb %mm0, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsb: ; ZNVER1: # BB#0: @@ -1194,8 +1194,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pabsd (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: pabsd %mm0, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsd: ; ZNVER1: # BB#0: @@ -1272,8 +1272,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pabsw (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: pabsw %mm0, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsw: ; ZNVER1: # BB#0: @@ -1350,8 +1350,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: packssdw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: packssdw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packssdw: ; ZNVER1: # BB#0: @@ -1428,8 +1428,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: packsswb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: packsswb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packsswb: ; ZNVER1: # BB#0: @@ -1506,8 +1506,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: packuswb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: packuswb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packuswb: ; ZNVER1: # BB#0: @@ -1584,8 +1584,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddb: ; ZNVER1: # BB#0: @@ -1662,8 +1662,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddd: ; ZNVER1: # BB#0: @@ -1740,8 +1740,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddq %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddq (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddq: ; ZNVER1: # BB#0: @@ -1818,8 +1818,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddsb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddsb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddsb: ; ZNVER1: # BB#0: @@ -1896,8 +1896,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddsw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddsw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddsw: ; ZNVER1: # BB#0: @@ -1974,8 +1974,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddusb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddusb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddusb: ; ZNVER1: # BB#0: @@ -2052,8 +2052,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddusw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddusw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddusw: ; ZNVER1: # BB#0: @@ -2130,8 +2130,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: paddw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: paddw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddw: ; ZNVER1: # BB#0: @@ -2208,8 +2208,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: palignr $1, %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: palignr $1, (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_palignr: ; ZNVER1: # BB#0: @@ -2286,8 +2286,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pand %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pand (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pand: ; ZNVER1: # BB#0: @@ -2364,8 +2364,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pandn %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pandn (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pandn: ; ZNVER1: # BB#0: @@ -2442,8 +2442,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pavgb %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pavgb (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pavgb: ; ZNVER1: # BB#0: @@ -2520,8 +2520,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pavgw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pavgw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pavgw: ; ZNVER1: # BB#0: @@ -2598,8 +2598,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpeqb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpeqb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqb: ; ZNVER1: # BB#0: @@ -2676,8 +2676,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpeqd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpeqd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqd: ; ZNVER1: # BB#0: @@ -2754,8 +2754,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpeqw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpeqw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqw: ; ZNVER1: # BB#0: @@ -2832,8 +2832,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpgtb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpgtb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtb: ; ZNVER1: # BB#0: @@ -2910,8 +2910,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpgtd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpgtd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtd: ; ZNVER1: # BB#0: @@ -2988,8 +2988,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pcmpgtw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pcmpgtw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtw: ; ZNVER1: # BB#0: @@ -3049,7 +3049,7 @@ ; BTVER2-LABEL: test_pextrw: ; BTVER2: # BB#0: ; BTVER2-NEXT: pextrw $0, %mm0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrw: ; ZNVER1: # BB#0: @@ -3121,8 +3121,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phaddd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phaddd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddd: ; ZNVER1: # BB#0: @@ -3199,8 +3199,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phaddsw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phaddsw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddsw: ; ZNVER1: # BB#0: @@ -3277,8 +3277,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phaddw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phaddw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddw: ; ZNVER1: # BB#0: @@ -3355,8 +3355,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phsubd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phsubd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubd: ; ZNVER1: # BB#0: @@ -3433,8 +3433,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phsubsw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phsubsw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubsw: ; ZNVER1: # BB#0: @@ -3511,8 +3511,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: phsubw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: phsubw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubw: ; ZNVER1: # BB#0: @@ -3598,8 +3598,8 @@ ; BTVER2-NEXT: movswl (%rsi), %eax # sched: [4:1.00] ; BTVER2-NEXT: pinsrw $0, %edi, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pinsrw $1, %eax, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pinsrw: ; ZNVER1: # BB#0: @@ -3678,8 +3678,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmaddwd %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmaddwd (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaddwd: ; ZNVER1: # BB#0: @@ -3756,8 +3756,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmaddubsw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmaddubsw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaddubsw: ; ZNVER1: # BB#0: @@ -3834,8 +3834,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmaxsw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmaxsw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxsw: ; ZNVER1: # BB#0: @@ -3912,8 +3912,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmaxub %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmaxub (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxub: ; ZNVER1: # BB#0: @@ -3990,8 +3990,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pminsw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pminsw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminsw: ; ZNVER1: # BB#0: @@ -4068,8 +4068,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pminub %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pminub (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminub: ; ZNVER1: # BB#0: @@ -4129,7 +4129,7 @@ ; BTVER2-LABEL: test_pmovmskb: ; BTVER2: # BB#0: ; BTVER2-NEXT: pmovmskb %mm0, %eax -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovmskb: ; ZNVER1: # BB#0: @@ -4201,8 +4201,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmulhrsw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmulhrsw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhrsw: ; ZNVER1: # BB#0: @@ -4279,8 +4279,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmulhw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmulhw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhw: ; ZNVER1: # BB#0: @@ -4357,8 +4357,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmulhuw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmulhuw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhuw: ; ZNVER1: # BB#0: @@ -4435,8 +4435,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmullw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmullw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmullw: ; ZNVER1: # BB#0: @@ -4513,8 +4513,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pmuludq %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: pmuludq (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmuludq: ; ZNVER1: # BB#0: @@ -4591,8 +4591,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: por %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: por (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_por: ; ZNVER1: # BB#0: @@ -4669,8 +4669,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psadbw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: psadbw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psadbw: ; ZNVER1: # BB#0: @@ -4747,8 +4747,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pshufb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pshufb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshufb: ; ZNVER1: # BB#0: @@ -4825,8 +4825,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00] ; BTVER2-NEXT: pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshufw: ; ZNVER1: # BB#0: @@ -4903,8 +4903,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psignb %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: psignb (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignb: ; ZNVER1: # BB#0: @@ -4981,8 +4981,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psignd %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: psignd (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignd: ; ZNVER1: # BB#0: @@ -5059,8 +5059,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psignw %mm1, %mm0 # sched: [2:1.00] ; BTVER2-NEXT: psignw (%rdi), %mm0 # sched: [7:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignw: ; ZNVER1: # BB#0: @@ -5146,8 +5146,8 @@ ; BTVER2-NEXT: pslld %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pslld (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: pslld $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pslld: ; ZNVER1: # BB#0: @@ -5236,8 +5236,8 @@ ; BTVER2-NEXT: psllq %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psllq (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psllq $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psllq: ; ZNVER1: # BB#0: @@ -5326,8 +5326,8 @@ ; BTVER2-NEXT: psllw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psllw (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psllw $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psllw: ; ZNVER1: # BB#0: @@ -5416,8 +5416,8 @@ ; BTVER2-NEXT: psrad %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psrad (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psrad $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrad: ; ZNVER1: # BB#0: @@ -5506,8 +5506,8 @@ ; BTVER2-NEXT: psraw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psraw (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psraw $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psraw: ; ZNVER1: # BB#0: @@ -5596,8 +5596,8 @@ ; BTVER2-NEXT: psrld %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psrld (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psrld $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrld: ; ZNVER1: # BB#0: @@ -5686,8 +5686,8 @@ ; BTVER2-NEXT: psrlq %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psrlq (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psrlq $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrlq: ; ZNVER1: # BB#0: @@ -5776,8 +5776,8 @@ ; BTVER2-NEXT: psrlw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psrlw (%rdi), %mm0 # sched: [6:1.00] ; BTVER2-NEXT: psrlw $7, %mm0 # sched: [1:0.50] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrlw: ; ZNVER1: # BB#0: @@ -5857,8 +5857,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubb: ; ZNVER1: # BB#0: @@ -5935,8 +5935,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubd %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubd (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubd: ; ZNVER1: # BB#0: @@ -6013,8 +6013,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubq %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubq (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubq: ; ZNVER1: # BB#0: @@ -6091,8 +6091,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubsb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubsb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubsb: ; ZNVER1: # BB#0: @@ -6169,8 +6169,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubsw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubsw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubsw: ; ZNVER1: # BB#0: @@ -6247,8 +6247,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubusb %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubusb (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubusb: ; ZNVER1: # BB#0: @@ -6325,8 +6325,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubusw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubusw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubusw: ; ZNVER1: # BB#0: @@ -6403,8 +6403,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: psubw %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: psubw (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubw: ; ZNVER1: # BB#0: @@ -6481,8 +6481,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [1:0.50] ; BTVER2-NEXT: punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhbw: ; ZNVER1: # BB#0: @@ -6559,8 +6559,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:0.50] ; BTVER2-NEXT: punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhdq: ; ZNVER1: # BB#0: @@ -6637,8 +6637,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.50] ; BTVER2-NEXT: punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhwd: ; ZNVER1: # BB#0: @@ -6715,8 +6715,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpcklbw %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.50] ; BTVER2-NEXT: punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpcklbw: ; ZNVER1: # BB#0: @@ -6793,8 +6793,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:0.50] ; BTVER2-NEXT: punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckldq: ; ZNVER1: # BB#0: @@ -6871,8 +6871,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:0.50] ; BTVER2-NEXT: punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpcklwd: ; ZNVER1: # BB#0: @@ -6949,8 +6949,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: pxor %mm1, %mm0 # sched: [1:0.50] ; BTVER2-NEXT: pxor (%rdi), %mm0 # sched: [6:1.00] -; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movd %mm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pxor: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/movbe-schedule.ll =================================================================== --- test/CodeGen/X86/movbe-schedule.ll +++ test/CodeGen/X86/movbe-schedule.ll @@ -54,7 +54,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: movbew (%rdi), %ax # sched: [4:1.00] ; BTVER2-NEXT: movbew %si, (%rdx) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movbe_i16: ; ZNVER1: # BB#0: @@ -114,7 +114,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: movbel (%rdi), %eax # sched: [4:1.00] ; BTVER2-NEXT: movbel %esi, (%rdx) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movbe_i32: ; ZNVER1: # BB#0: @@ -174,7 +174,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: movbeq (%rdi), %rax # sched: [4:1.00] ; BTVER2-NEXT: movbeq %rsi, (%rdx) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movbe_i64: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/mul-constant-i32.ll =================================================================== --- test/CodeGen/X86/mul-constant-i32.ll +++ test/CodeGen/X86/mul-constant-i32.ll @@ -21,8 +21,8 @@ ; ; X64-JAG-LABEL: test_mul_by_1: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_1: ; X86-NOOPT: # BB#0: @@ -36,8 +36,8 @@ ; ; JAG-NOOPT-LABEL: test_mul_by_1: ; JAG-NOOPT: # BB#0: -; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_1: ; X64-SLM: # BB#0: @@ -69,7 +69,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_2: ; X86-NOOPT: # BB#0: @@ -87,7 +87,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (%rdi,%rdi), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_2: ; X64-SLM: # BB#0: @@ -120,7 +120,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_3: ; X86-NOOPT: # BB#0: @@ -137,7 +137,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_3: ; X64-SLM: # BB#0: @@ -171,7 +171,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (,%rdi,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_4: ; X86-NOOPT: # BB#0: @@ -189,7 +189,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (,%rdi,4), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_4: ; X64-SLM: # BB#0: @@ -222,7 +222,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_5: ; X86-NOOPT: # BB#0: @@ -239,7 +239,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_5: ; X64-SLM: # BB#0: @@ -276,7 +276,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: addl %edi, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_6: ; X86-NOOPT: # BB#0: @@ -291,7 +291,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_6: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $6, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_6: ; X64-SLM: # BB#0: @@ -328,7 +328,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (,%rdi,8), %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_7: ; X86-NOOPT: # BB#0: @@ -343,7 +343,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_7: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $7, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_7: ; X64-SLM: # BB#0: @@ -377,7 +377,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (,%rdi,8), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_8: ; X86-NOOPT: # BB#0: @@ -395,7 +395,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (,%rdi,8), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_8: ; X64-SLM: # BB#0: @@ -428,7 +428,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_9: ; X86-NOOPT: # BB#0: @@ -445,7 +445,7 @@ ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: # kill: %EDI %EDI %RDI ; JAG-NOOPT-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_9: ; X64-SLM: # BB#0: @@ -482,7 +482,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: addl %edi, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_10: ; X86-NOOPT: # BB#0: @@ -497,7 +497,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_10: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $10, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_10: ; X64-SLM: # BB#0: @@ -534,7 +534,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rax,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_11: ; X86-NOOPT: # BB#0: @@ -549,7 +549,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_11: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $11, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_11: ; X64-SLM: # BB#0: @@ -584,7 +584,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: shll $2, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_12: ; X86-NOOPT: # BB#0: @@ -599,7 +599,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_12: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $12, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_12: ; X64-SLM: # BB#0: @@ -636,7 +636,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rax,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_13: ; X86-NOOPT: # BB#0: @@ -651,7 +651,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_13: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $13, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_13: ; X64-SLM: # BB#0: @@ -689,7 +689,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rax,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: addl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_14: ; X86-NOOPT: # BB#0: @@ -704,7 +704,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_14: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $14, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_14: ; X64-SLM: # BB#0: @@ -739,7 +739,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rax,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_15: ; X86-NOOPT: # BB#0: @@ -754,7 +754,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_15: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $15, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_15: ; X64-SLM: # BB#0: @@ -787,8 +787,8 @@ ; X64-JAG-LABEL: test_mul_by_16: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shll $4, %edi # sched: [1:0.50] -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_16: ; X86-NOOPT: # BB#0: @@ -805,8 +805,8 @@ ; JAG-NOOPT-LABEL: test_mul_by_16: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: shll $4, %edi # sched: [1:0.50] -; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_16: ; X64-SLM: # BB#0: @@ -843,10 +843,10 @@ ; X64-JAG-LABEL: test_mul_by_17: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] ; X64-JAG-NEXT: shll $4, %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rdi), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_17: ; X86-NOOPT: # BB#0: @@ -861,7 +861,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_17: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $17, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_17: ; X64-SLM: # BB#0: @@ -899,7 +899,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: addl %edi, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_18: ; X86-NOOPT: # BB#0: @@ -914,7 +914,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_18: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $18, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_18: ; X64-SLM: # BB#0: @@ -954,7 +954,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: shll $2, %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_19: ; X86-NOOPT: # BB#0: @@ -969,7 +969,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_19: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $19, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_19: ; X64-SLM: # BB#0: @@ -1004,7 +1004,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: shll $2, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_20: ; X86-NOOPT: # BB#0: @@ -1019,7 +1019,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_20: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $20, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_20: ; X64-SLM: # BB#0: @@ -1056,7 +1056,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rax,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_21: ; X86-NOOPT: # BB#0: @@ -1071,7 +1071,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_21: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $21, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_21: ; X64-SLM: # BB#0: @@ -1109,7 +1109,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rax,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: addl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_22: ; X86-NOOPT: # BB#0: @@ -1124,7 +1124,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_22: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $22, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_22: ; X64-SLM: # BB#0: @@ -1162,7 +1162,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: shll $3, %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_23: ; X86-NOOPT: # BB#0: @@ -1177,7 +1177,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_23: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $23, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_23: ; X64-SLM: # BB#0: @@ -1212,7 +1212,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: shll $3, %edi # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rdi,%rdi,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_24: ; X86-NOOPT: # BB#0: @@ -1227,7 +1227,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_24: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $24, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_24: ; X64-SLM: # BB#0: @@ -1264,7 +1264,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rax,4), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_25: ; X86-NOOPT: # BB#0: @@ -1279,7 +1279,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_25: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $25, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_25: ; X64-SLM: # BB#0: @@ -1319,7 +1319,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rax,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_26: ; X86-NOOPT: # BB#0: @@ -1334,7 +1334,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_26: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $26, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_26: ; X64-SLM: # BB#0: @@ -1369,7 +1369,7 @@ ; X64-JAG-NEXT: # kill: %EDI %EDI %RDI ; X64-JAG-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rax,2), %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_27: ; X86-NOOPT: # BB#0: @@ -1384,7 +1384,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_27: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $27, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_27: ; X64-SLM: # BB#0: @@ -1424,7 +1424,7 @@ ; X64-JAG-NEXT: leal (%rdi,%rdi,8), %eax # sched: [1:0.50] ; X64-JAG-NEXT: leal (%rax,%rax,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: addl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_28: ; X86-NOOPT: # BB#0: @@ -1439,7 +1439,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_28: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $28, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_28: ; X64-SLM: # BB#0: @@ -1480,7 +1480,7 @@ ; X64-JAG-NEXT: leal (%rax,%rax,2), %eax # sched: [1:0.50] ; X64-JAG-NEXT: addl %edi, %eax # sched: [1:0.50] ; X64-JAG-NEXT: addl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_29: ; X86-NOOPT: # BB#0: @@ -1495,7 +1495,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_29: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $29, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_29: ; X64-SLM: # BB#0: @@ -1530,11 +1530,11 @@ ; ; X64-JAG-LABEL: test_mul_by_30: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] ; X64-JAG-NEXT: shll $5, %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_30: ; X86-NOOPT: # BB#0: @@ -1549,7 +1549,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_30: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $30, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_30: ; X64-SLM: # BB#0: @@ -1582,10 +1582,10 @@ ; ; X64-JAG-LABEL: test_mul_by_31: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] ; X64-JAG-NEXT: shll $5, %eax # sched: [1:0.50] ; X64-JAG-NEXT: subl %edi, %eax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_31: ; X86-NOOPT: # BB#0: @@ -1600,7 +1600,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_31: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imull $31, %edi, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_31: ; X64-SLM: # BB#0: @@ -1633,8 +1633,8 @@ ; X64-JAG-LABEL: test_mul_by_32: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shll $5, %edi # sched: [1:0.50] -; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movl %edi, %eax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_32: ; X86-NOOPT: # BB#0: @@ -1651,8 +1651,8 @@ ; JAG-NOOPT-LABEL: test_mul_by_32: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: shll $5, %edi # sched: [1:0.50] -; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movl %edi, %eax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_32: ; X64-SLM: # BB#0: @@ -1695,7 +1695,7 @@ ; X64-JAG-NEXT: leal 42(%rdi,%rdi,8), %ecx # sched: [1:0.50] ; X64-JAG-NEXT: leal 2(%rdi,%rdi,4), %eax # sched: [1:0.50] ; X64-JAG-NEXT: imull %ecx, %eax # sched: [3:1.00] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_spec: ; X86-NOOPT: # BB#0: @@ -1721,7 +1721,7 @@ ; JAG-NOOPT-NEXT: leal 42(%rdi,%rdi,8), %ecx # sched: [1:0.50] ; JAG-NOOPT-NEXT: leal 2(%rdi,%rdi,4), %eax # sched: [1:0.50] ; JAG-NOOPT-NEXT: imull %ecx, %eax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_spec: ; X64-SLM: # BB#0: Index: test/CodeGen/X86/mul-constant-i64.ll =================================================================== --- test/CodeGen/X86/mul-constant-i64.ll +++ test/CodeGen/X86/mul-constant-i64.ll @@ -22,8 +22,8 @@ ; ; X64-JAG-LABEL: test_mul_by_1: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_1: ; X86-NOOPT: # BB#0: @@ -38,8 +38,8 @@ ; ; JAG-NOOPT-LABEL: test_mul_by_1: ; JAG-NOOPT: # BB#0: -; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_1: ; X64-SLM: # BB#0: @@ -71,7 +71,7 @@ ; X64-JAG-LABEL: test_mul_by_2: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_2: ; X86-NOOPT: # BB#0: @@ -89,7 +89,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_2: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (%rdi,%rdi), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_2: ; X64-SLM: # BB#0: @@ -121,7 +121,7 @@ ; X64-JAG-LABEL: test_mul_by_3: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_3: ; X86-NOOPT: # BB#0: @@ -139,7 +139,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_3: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_3: ; X64-SLM: # BB#0: @@ -171,7 +171,7 @@ ; X64-JAG-LABEL: test_mul_by_4: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (,%rdi,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_4: ; X86-NOOPT: # BB#0: @@ -189,7 +189,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_4: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (,%rdi,4), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_4: ; X64-SLM: # BB#0: @@ -221,7 +221,7 @@ ; X64-JAG-LABEL: test_mul_by_5: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_5: ; X86-NOOPT: # BB#0: @@ -239,7 +239,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_5: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_5: ; X64-SLM: # BB#0: @@ -274,7 +274,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: addq %rdi, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_6: ; X86-NOOPT: # BB#0: @@ -292,7 +292,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_6: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $6, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_6: ; X64-SLM: # BB#0: @@ -329,7 +329,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (,%rdi,8), %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_7: ; X86-NOOPT: # BB#0: @@ -347,7 +347,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_7: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $7, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_7: ; X64-SLM: # BB#0: @@ -380,7 +380,7 @@ ; X64-JAG-LABEL: test_mul_by_8: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (,%rdi,8), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_8: ; X86-NOOPT: # BB#0: @@ -398,7 +398,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_8: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (,%rdi,8), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_8: ; X64-SLM: # BB#0: @@ -430,7 +430,7 @@ ; X64-JAG-LABEL: test_mul_by_9: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_9: ; X86-NOOPT: # BB#0: @@ -448,7 +448,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_9: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_9: ; X64-SLM: # BB#0: @@ -483,7 +483,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: addq %rdi, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_10: ; X86-NOOPT: # BB#0: @@ -501,7 +501,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_10: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $10, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_10: ; X64-SLM: # BB#0: @@ -538,7 +538,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rax,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_11: ; X86-NOOPT: # BB#0: @@ -556,7 +556,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_11: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $11, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_11: ; X64-SLM: # BB#0: @@ -591,7 +591,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shlq $2, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_12: ; X86-NOOPT: # BB#0: @@ -609,7 +609,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_12: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $12, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_12: ; X64-SLM: # BB#0: @@ -646,7 +646,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rax,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_13: ; X86-NOOPT: # BB#0: @@ -664,7 +664,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_13: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $13, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_13: ; X64-SLM: # BB#0: @@ -703,7 +703,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rax,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: addq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_14: ; X86-NOOPT: # BB#0: @@ -721,7 +721,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_14: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $14, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_14: ; X64-SLM: # BB#0: @@ -757,7 +757,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rax,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_15: ; X86-NOOPT: # BB#0: @@ -775,7 +775,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_15: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $15, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_15: ; X64-SLM: # BB#0: @@ -809,8 +809,8 @@ ; X64-JAG-LABEL: test_mul_by_16: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shlq $4, %rdi # sched: [1:0.50] -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_16: ; X86-NOOPT: # BB#0: @@ -829,8 +829,8 @@ ; JAG-NOOPT-LABEL: test_mul_by_16: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: shlq $4, %rdi # sched: [1:0.50] -; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_16: ; X64-SLM: # BB#0: @@ -868,10 +868,10 @@ ; ; X64-JAG-LABEL: test_mul_by_17: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] ; X64-JAG-NEXT: shlq $4, %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rdi), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_17: ; X86-NOOPT: # BB#0: @@ -889,7 +889,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_17: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $17, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_17: ; X64-SLM: # BB#0: @@ -926,7 +926,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: addq %rdi, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_18: ; X86-NOOPT: # BB#0: @@ -944,7 +944,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_18: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $18, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_18: ; X64-SLM: # BB#0: @@ -984,7 +984,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: shlq $2, %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_19: ; X86-NOOPT: # BB#0: @@ -1002,7 +1002,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_19: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $19, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_19: ; X64-SLM: # BB#0: @@ -1037,7 +1037,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shlq $2, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_20: ; X86-NOOPT: # BB#0: @@ -1055,7 +1055,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_20: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $20, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_20: ; X64-SLM: # BB#0: @@ -1092,7 +1092,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rax,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_21: ; X86-NOOPT: # BB#0: @@ -1110,7 +1110,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_21: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $21, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_21: ; X64-SLM: # BB#0: @@ -1149,7 +1149,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rax,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: addq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_22: ; X86-NOOPT: # BB#0: @@ -1167,7 +1167,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_22: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $22, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_22: ; X64-SLM: # BB#0: @@ -1206,7 +1206,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: shlq $3, %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_23: ; X86-NOOPT: # BB#0: @@ -1224,7 +1224,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_23: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $23, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_23: ; X64-SLM: # BB#0: @@ -1259,7 +1259,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shlq $3, %rdi # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rdi,%rdi,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_24: ; X86-NOOPT: # BB#0: @@ -1277,7 +1277,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_24: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $24, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_24: ; X64-SLM: # BB#0: @@ -1314,7 +1314,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rax,4), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_25: ; X86-NOOPT: # BB#0: @@ -1332,7 +1332,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_25: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $25, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_25: ; X64-SLM: # BB#0: @@ -1372,7 +1372,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rax,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_26: ; X86-NOOPT: # BB#0: @@ -1390,7 +1390,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_26: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $26, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_26: ; X64-SLM: # BB#0: @@ -1426,7 +1426,7 @@ ; X64-JAG: # BB#0: ; X64-JAG-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rax,2), %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_27: ; X86-NOOPT: # BB#0: @@ -1444,7 +1444,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_27: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $27, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_27: ; X64-SLM: # BB#0: @@ -1484,7 +1484,7 @@ ; X64-JAG-NEXT: leaq (%rdi,%rdi,8), %rax # sched: [1:0.50] ; X64-JAG-NEXT: leaq (%rax,%rax,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: addq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_28: ; X86-NOOPT: # BB#0: @@ -1502,7 +1502,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_28: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $28, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_28: ; X64-SLM: # BB#0: @@ -1544,7 +1544,7 @@ ; X64-JAG-NEXT: leaq (%rax,%rax,2), %rax # sched: [1:0.50] ; X64-JAG-NEXT: addq %rdi, %rax # sched: [1:0.50] ; X64-JAG-NEXT: addq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_29: ; X86-NOOPT: # BB#0: @@ -1562,7 +1562,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_29: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $29, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_29: ; X64-SLM: # BB#0: @@ -1600,11 +1600,11 @@ ; ; X64-JAG-LABEL: test_mul_by_30: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] ; X64-JAG-NEXT: shlq $5, %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_30: ; X86-NOOPT: # BB#0: @@ -1622,7 +1622,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_30: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $30, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_30: ; X64-SLM: # BB#0: @@ -1658,10 +1658,10 @@ ; ; X64-JAG-LABEL: test_mul_by_31: ; X64-JAG: # BB#0: -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] ; X64-JAG-NEXT: shlq $5, %rax # sched: [1:0.50] ; X64-JAG-NEXT: subq %rdi, %rax # sched: [1:0.50] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_31: ; X86-NOOPT: # BB#0: @@ -1679,7 +1679,7 @@ ; JAG-NOOPT-LABEL: test_mul_by_31: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: imulq $31, %rdi, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_31: ; X64-SLM: # BB#0: @@ -1714,8 +1714,8 @@ ; X64-JAG-LABEL: test_mul_by_32: ; X64-JAG: # BB#0: ; X64-JAG-NEXT: shlq $5, %rdi # sched: [1:0.50] -; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.17] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: movq %rdi, %rax # sched: [1:0.50] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_by_32: ; X86-NOOPT: # BB#0: @@ -1734,8 +1734,8 @@ ; JAG-NOOPT-LABEL: test_mul_by_32: ; JAG-NOOPT: # BB#0: ; JAG-NOOPT-NEXT: shlq $5, %rdi # sched: [1:0.50] -; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.17] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: movq %rdi, %rax # sched: [1:0.50] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_by_32: ; X64-SLM: # BB#0: @@ -1800,7 +1800,7 @@ ; X64-JAG-NEXT: leaq 42(%rdi,%rdi,8), %rcx # sched: [1:0.50] ; X64-JAG-NEXT: leaq 2(%rdi,%rdi,4), %rax # sched: [1:0.50] ; X64-JAG-NEXT: imulq %rcx, %rax # sched: [3:1.00] -; X64-JAG-NEXT: retq # sched: [4:1.00] +; X64-JAG-NEXT: retq # sched: [1:1.00] ; ; X86-NOOPT-LABEL: test_mul_spec: ; X86-NOOPT: # BB#0: @@ -1848,7 +1848,7 @@ ; JAG-NOOPT-NEXT: leaq 42(%rdi,%rdi,8), %rcx # sched: [1:0.50] ; JAG-NOOPT-NEXT: leaq 2(%rdi,%rdi,4), %rax # sched: [1:0.50] ; JAG-NOOPT-NEXT: imulq %rcx, %rax # sched: [3:1.00] -; JAG-NOOPT-NEXT: retq # sched: [4:1.00] +; JAG-NOOPT-NEXT: retq # sched: [1:1.00] ; ; X64-SLM-LABEL: test_mul_spec: ; X64-SLM: # BB#0: Index: test/CodeGen/X86/popcnt-schedule.ll =================================================================== --- test/CodeGen/X86/popcnt-schedule.ll +++ test/CodeGen/X86/popcnt-schedule.ll @@ -66,7 +66,7 @@ ; BTVER2-NEXT: popcntw %di, %ax # sched: [3:1.00] ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctpop_i16: ; ZNVER1: # BB#0: @@ -131,7 +131,7 @@ ; BTVER2-NEXT: popcntl (%rsi), %ecx # sched: [8:1.00] ; BTVER2-NEXT: popcntl %edi, %eax # sched: [3:1.00] ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctpop_i32: ; ZNVER1: # BB#0: @@ -195,7 +195,7 @@ ; BTVER2-NEXT: popcntq (%rsi), %rcx # sched: [8:1.00] ; BTVER2-NEXT: popcntq %rdi, %rax # sched: [3:1.00] ; BTVER2-NEXT: orq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ctpop_i64: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/recip-fastmath.ll =================================================================== --- test/CodeGen/X86/recip-fastmath.ll +++ test/CodeGen/X86/recip-fastmath.ll @@ -41,7 +41,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [5:1.00] ; BTVER2-NEXT: vdivss %xmm0, %xmm1, %xmm0 # sched: [19:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_no_estimate: ; SANDY: # BB#0: @@ -113,7 +113,7 @@ ; BTVER2-NEXT: vsubss %xmm0, %xmm2, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulss %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddss %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_one_step: ; SANDY: # BB#0: @@ -214,7 +214,7 @@ ; BTVER2-NEXT: vsubss %xmm0, %xmm3, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulss %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddss %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_two_step: ; SANDY: # BB#0: @@ -304,7 +304,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovaps {{.*#+}} xmm1 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [5:1.00] ; BTVER2-NEXT: vdivps %xmm0, %xmm1, %xmm0 # sched: [19:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_no_estimate: ; SANDY: # BB#0: @@ -376,7 +376,7 @@ ; BTVER2-NEXT: vsubps %xmm0, %xmm2, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulps %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_one_step: ; SANDY: # BB#0: @@ -479,7 +479,7 @@ ; BTVER2-NEXT: vsubps %xmm0, %xmm3, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulps %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_two_step: ; SANDY: # BB#0: @@ -572,7 +572,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovaps {{.*#+}} ymm1 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [5:1.00] ; BTVER2-NEXT: vdivps %ymm0, %ymm1, %ymm0 # sched: [38:38.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_no_estimate: ; SANDY: # BB#0: @@ -651,7 +651,7 @@ ; BTVER2-NEXT: vsubps %ymm0, %ymm2, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmulps %ymm0, %ymm1, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_one_step: ; SANDY: # BB#0: @@ -767,7 +767,7 @@ ; BTVER2-NEXT: vsubps %ymm0, %ymm3, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmulps %ymm0, %ymm1, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_two_step: ; SANDY: # BB#0: Index: test/CodeGen/X86/recip-fastmath2.ll =================================================================== --- test/CodeGen/X86/recip-fastmath2.ll +++ test/CodeGen/X86/recip-fastmath2.ll @@ -34,7 +34,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vrcpss %xmm0, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_no_step_2: ; SANDY: # BB#0: @@ -110,7 +110,7 @@ ; BTVER2-NEXT: vmulss %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddss %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_one_step_2: ; SANDY: # BB#0: @@ -206,7 +206,7 @@ ; BTVER2-NEXT: vaddss %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vmulss %xmm0, %xmm1, %xmm0 # sched: [2:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_one_step_2_divs: ; SANDY: # BB#0: @@ -322,7 +322,7 @@ ; BTVER2-NEXT: vmulss %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddss %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: f32_two_step_2: ; SANDY: # BB#0: @@ -434,7 +434,7 @@ ; BTVER2-NEXT: vmulps %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_one_step2: ; SANDY: # BB#0: @@ -532,7 +532,7 @@ ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %xmm0, %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vmulps %xmm0, %xmm1, %xmm0 # sched: [2:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_one_step_2_divs: ; SANDY: # BB#0: @@ -650,7 +650,7 @@ ; BTVER2-NEXT: vmulps %xmm0, %xmm1, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v4f32_two_step2: ; SANDY: # BB#0: @@ -770,7 +770,7 @@ ; BTVER2-NEXT: vmulps %ymm0, %ymm1, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_one_step2: ; SANDY: # BB#0: @@ -877,7 +877,7 @@ ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %ymm0, %ymm1 # sched: [7:2.00] ; BTVER2-NEXT: vmulps %ymm0, %ymm1, %ymm0 # sched: [2:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_one_step_2_divs: ; SANDY: # BB#0: @@ -1009,7 +1009,7 @@ ; BTVER2-NEXT: vmulps %ymm0, %ymm1, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:2.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_two_step2: ; SANDY: # BB#0: @@ -1100,7 +1100,7 @@ ; BTVER2-LABEL: v8f32_no_step: ; BTVER2: # BB#0: ; BTVER2-NEXT: vrcpps %ymm0, %ymm0 # sched: [2:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_no_step: ; SANDY: # BB#0: @@ -1155,7 +1155,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vrcpps %ymm0, %ymm0 # sched: [2:2.00] ; BTVER2-NEXT: vmulps {{.*}}(%rip), %ymm0, %ymm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; SANDY-LABEL: v8f32_no_step2: ; SANDY: # BB#0: Index: test/CodeGen/X86/schedule-x86-64-shld.ll =================================================================== --- test/CodeGen/X86/schedule-x86-64-shld.ll +++ test/CodeGen/X86/schedule-x86-64-shld.ll @@ -0,0 +1,687 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=atom | FileCheck %s --check-prefix=CHECK --check-prefix=ATOM +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=slm | FileCheck %s --check-prefix=CHECK --check-prefix=SLM +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=sandybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver1 | FileCheck %s --check-prefix=CHECK --check-prefix=BDVER1 + + +; clang -Oz -c test1.cpp -emit-llvm -S -o +; Verify that we generate shld insruction when we are optimizing for size, +; even for X86_64 processors that are known to have poor latency double +; precision shift instructions. +; uint64_t lshift10(uint64_t a, uint64_t b) +; { +; return (a << 10) | (b >> 54); +; } + +; Function Attrs: minsize nounwind readnone uwtable +define i64 @_Z8lshift10mm(i64 %a, i64 %b) #0 { +; GENERIC-LABEL: _Z8lshift10mm: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: shldq $10, %rsi, %rdi # sched: [2:0.67] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: _Z8lshift10mm: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: shldq $10, %rsi, %rdi # sched: [9:4.50] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: _Z8lshift10mm: +; SLM: # BB#0: # %entry +; SLM-NEXT: shldq $10, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: _Z8lshift10mm: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: shldq $10, %rsi, %rdi # sched: [2:0.67] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: _Z8lshift10mm: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: shldq $10, %rsi, %rdi # sched: [3:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: _Z8lshift10mm: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: shldq $10, %rsi, %rdi # sched: [3:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: _Z8lshift10mm: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: shldq $10, %rsi, %rdi # sched: [3:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: _Z8lshift10mm: +; SKX: # BB#0: # %entry +; SKX-NEXT: shldq $10, %rsi, %rdi # sched: [3:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: _Z8lshift10mm: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: shldq $10, %rsi, %rdi # sched: [3:3.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: _Z8lshift10mm: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: shldq $10, %rsi, %rdi # sched: [1:0.25] +; ZNVER1-NEXT: movq %rdi, %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: _Z8lshift10mm: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: shldq $10, %rsi, %rdi +; BDVER1-NEXT: movq %rdi, %rax +; BDVER1-NEXT: retq +entry: + %shl = shl i64 %a, 10 + %shr = lshr i64 %b, 54 + %or = or i64 %shr, %shl + ret i64 %or +} + +attributes #0 = { minsize nounwind readnone uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } + + +; clang -Os -c test2.cpp -emit-llvm -S +; Verify that we generate shld insruction when we are optimizing for size, +; even for X86_64 processors that are known to have poor latency double +; precision shift instructions. +; uint64_t lshift11(uint64_t a, uint64_t b) +; { +; return (a << 11) | (b >> 53); +; } + +; Function Attrs: nounwind optsize readnone uwtable +define i64 @_Z8lshift11mm(i64 %a, i64 %b) #1 { +; GENERIC-LABEL: _Z8lshift11mm: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: shldq $11, %rsi, %rdi # sched: [2:0.67] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: _Z8lshift11mm: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: shldq $11, %rsi, %rdi # sched: [9:4.50] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: _Z8lshift11mm: +; SLM: # BB#0: # %entry +; SLM-NEXT: shldq $11, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: _Z8lshift11mm: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: shldq $11, %rsi, %rdi # sched: [2:0.67] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: _Z8lshift11mm: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: shldq $11, %rsi, %rdi # sched: [3:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: _Z8lshift11mm: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: shldq $11, %rsi, %rdi # sched: [3:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: _Z8lshift11mm: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: shldq $11, %rsi, %rdi # sched: [3:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: _Z8lshift11mm: +; SKX: # BB#0: # %entry +; SKX-NEXT: shldq $11, %rsi, %rdi # sched: [3:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: _Z8lshift11mm: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: shldq $11, %rsi, %rdi # sched: [3:3.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: _Z8lshift11mm: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: shldq $11, %rsi, %rdi # sched: [1:0.25] +; ZNVER1-NEXT: movq %rdi, %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: _Z8lshift11mm: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: shldq $11, %rsi, %rdi +; BDVER1-NEXT: movq %rdi, %rax +; BDVER1-NEXT: retq +entry: + %shl = shl i64 %a, 11 + %shr = lshr i64 %b, 53 + %or = or i64 %shr, %shl + ret i64 %or +} + +attributes #1 = { nounwind optsize readnone uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } + +; clang -O2 -c test2.cpp -emit-llvm -S +; Verify that we do not generate shld insruction when we are not optimizing +; for size for X86_64 processors that are known to have poor latency double +; precision shift instructions. +; uint64_t lshift12(uint64_t a, uint64_t b) +; { +; return (a << 12) | (b >> 52); +; } + +; Function Attrs: nounwind optsize readnone uwtable +define i64 @_Z8lshift12mm(i64 %a, i64 %b) #2 { +; GENERIC-LABEL: _Z8lshift12mm: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: shldq $12, %rsi, %rdi # sched: [2:0.67] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: _Z8lshift12mm: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: shldq $12, %rsi, %rdi # sched: [9:4.50] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: _Z8lshift12mm: +; SLM: # BB#0: # %entry +; SLM-NEXT: shldq $12, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: _Z8lshift12mm: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: shldq $12, %rsi, %rdi # sched: [2:0.67] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: _Z8lshift12mm: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: shldq $12, %rsi, %rdi # sched: [3:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: _Z8lshift12mm: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: shldq $12, %rsi, %rdi # sched: [3:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: _Z8lshift12mm: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: shldq $12, %rsi, %rdi # sched: [3:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: _Z8lshift12mm: +; SKX: # BB#0: # %entry +; SKX-NEXT: shldq $12, %rsi, %rdi # sched: [3:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: _Z8lshift12mm: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: shlq $12, %rdi # sched: [1:0.50] +; BTVER2-NEXT: shrq $52, %rsi # sched: [1:0.50] +; BTVER2-NEXT: leaq (%rsi,%rdi), %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: _Z8lshift12mm: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: shlq $12, %rdi # sched: [1:0.25] +; ZNVER1-NEXT: shrq $52, %rsi # sched: [1:0.25] +; ZNVER1-NEXT: leaq (%rsi,%rdi), %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: _Z8lshift12mm: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: shlq $12, %rdi +; BDVER1-NEXT: shrq $52, %rsi +; BDVER1-NEXT: leaq (%rsi,%rdi), %rax +; BDVER1-NEXT: retq +entry: + %shl = shl i64 %a, 12 + %shr = lshr i64 %b, 52 + %or = or i64 %shr, %shl + ret i64 %or +} + +attributes #2= { nounwind readnone uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } + +; Verify that for the X86_64 processors that are known to have poor latency +; double precision shift instructions we do not generate 'shld' or 'shrd' +; instructions. + +;uint64_t lshift(uint64_t a, uint64_t b, int c) +;{ +; return (a << c) | (b >> (64-c)); +;} + +define i64 @lshift(i64 %a, i64 %b, i32 %c) nounwind readnone { +; GENERIC-LABEL: lshift: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: movl %edx, %ecx # sched: [1:0.33] +; GENERIC-NEXT: shldq %cl, %rsi, %rdi # sched: [4:1.50] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: lshift: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; ATOM-NEXT: shldq %cl, %rsi, %rdi # sched: [8:4.00] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: lshift: +; SLM: # BB#0: # %entry +; SLM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; SLM-NEXT: shldq %cl, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: lshift: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: movl %edx, %ecx # sched: [1:0.33] +; SANDY-NEXT: shldq %cl, %rsi, %rdi # sched: [4:1.50] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: lshift: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; HASWELL-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: lshift: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; BROADWELL-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: lshift: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKYLAKE-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: lshift: +; SKX: # BB#0: # %entry +; SKX-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKX-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: lshift: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: movl %edx, %ecx # sched: [1:0.50] +; BTVER2-NEXT: shlq %cl, %rdi # sched: [1:0.50] +; BTVER2-NEXT: movl $64, %ecx # sched: [1:0.50] +; BTVER2-NEXT: subl %edx, %ecx # sched: [1:0.50] +; BTVER2-NEXT: # kill: %CL %CL %ECX +; BTVER2-NEXT: shrq %cl, %rsi # sched: [1:0.50] +; BTVER2-NEXT: orq %rdi, %rsi # sched: [1:0.50] +; BTVER2-NEXT: movq %rsi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: lshift: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: movl $64, %eax # sched: [1:0.25] +; ZNVER1-NEXT: # kill: %EDX %EDX %RDX +; ZNVER1-NEXT: shlxq %rdx, %rdi, %rcx # sched: [1:0.25] +; ZNVER1-NEXT: subl %edx, %eax # sched: [1:0.25] +; ZNVER1-NEXT: shrxq %rax, %rsi, %rax # sched: [1:0.25] +; ZNVER1-NEXT: orq %rcx, %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: lshift: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: movl %edx, %ecx +; BDVER1-NEXT: shlq %cl, %rdi +; BDVER1-NEXT: movl $64, %ecx +; BDVER1-NEXT: subl %edx, %ecx +; BDVER1-NEXT: # kill: %CL %CL %ECX +; BDVER1-NEXT: shrq %cl, %rsi +; BDVER1-NEXT: orq %rdi, %rsi +; BDVER1-NEXT: movq %rsi, %rax +; BDVER1-NEXT: retq +entry: + %sh_prom = zext i32 %c to i64 + %shl = shl i64 %a, %sh_prom + %sub = sub nsw i32 64, %c + %sh_prom1 = zext i32 %sub to i64 + %shr = lshr i64 %b, %sh_prom1 + %or = or i64 %shr, %shl + ret i64 %or +} + +;uint64_t rshift(uint64_t a, uint64_t b, int c) +;{ +; return (a >> c) | (b << (64-c)); +;} + +define i64 @rshift(i64 %a, i64 %b, i32 %c) nounwind readnone { +; GENERIC-LABEL: rshift: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: movl %edx, %ecx # sched: [1:0.33] +; GENERIC-NEXT: shrdq %cl, %rsi, %rdi # sched: [4:1.50] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: rshift: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; ATOM-NEXT: shrdq %cl, %rsi, %rdi # sched: [8:4.00] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: rshift: +; SLM: # BB#0: # %entry +; SLM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; SLM-NEXT: shrdq %cl, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: rshift: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: movl %edx, %ecx # sched: [1:0.33] +; SANDY-NEXT: shrdq %cl, %rsi, %rdi # sched: [4:1.50] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: rshift: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; HASWELL-NEXT: shrdq %cl, %rsi, %rdi # sched: [6:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: rshift: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; BROADWELL-NEXT: shrdq %cl, %rsi, %rdi # sched: [6:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: rshift: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKYLAKE-NEXT: shrdq %cl, %rsi, %rdi # sched: [6:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: rshift: +; SKX: # BB#0: # %entry +; SKX-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKX-NEXT: shrdq %cl, %rsi, %rdi # sched: [6:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: rshift: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: movl %edx, %ecx # sched: [1:0.50] +; BTVER2-NEXT: shrq %cl, %rdi # sched: [1:0.50] +; BTVER2-NEXT: movl $64, %ecx # sched: [1:0.50] +; BTVER2-NEXT: subl %edx, %ecx # sched: [1:0.50] +; BTVER2-NEXT: # kill: %CL %CL %ECX +; BTVER2-NEXT: shlq %cl, %rsi # sched: [1:0.50] +; BTVER2-NEXT: orq %rdi, %rsi # sched: [1:0.50] +; BTVER2-NEXT: movq %rsi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: rshift: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: movl $64, %eax # sched: [1:0.25] +; ZNVER1-NEXT: # kill: %EDX %EDX %RDX +; ZNVER1-NEXT: shrxq %rdx, %rdi, %rcx # sched: [1:0.25] +; ZNVER1-NEXT: subl %edx, %eax # sched: [1:0.25] +; ZNVER1-NEXT: shlxq %rax, %rsi, %rax # sched: [1:0.25] +; ZNVER1-NEXT: orq %rcx, %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: rshift: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: movl %edx, %ecx +; BDVER1-NEXT: shrq %cl, %rdi +; BDVER1-NEXT: movl $64, %ecx +; BDVER1-NEXT: subl %edx, %ecx +; BDVER1-NEXT: # kill: %CL %CL %ECX +; BDVER1-NEXT: shlq %cl, %rsi +; BDVER1-NEXT: orq %rdi, %rsi +; BDVER1-NEXT: movq %rsi, %rax +; BDVER1-NEXT: retq +entry: + %sh_prom = zext i32 %c to i64 + %shr = lshr i64 %a, %sh_prom + %sub = sub nsw i32 64, %c + %sh_prom1 = zext i32 %sub to i64 + %shl = shl i64 %b, %sh_prom1 + %or = or i64 %shl, %shr + ret i64 %or +} + +; Verify that for the X86_64 processors that are known to have poor latency +; double precision shift instructions we do not generate 'shld' or 'shrd' +; instructions. + +;uint64_t lshift(uint64_t a, uint64_t b, int c) +;{ +; return (a << c) | (b >> (64-c)); +;} + +define i64 @lshift_optsize(i64 %a, i64 %b, i32 %c) nounwind readnone optsize { +; GENERIC-LABEL: lshift_optsize: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: movl %edx, %ecx # sched: [1:0.33] +; GENERIC-NEXT: shldq %cl, %rsi, %rdi # sched: [4:1.50] +; GENERIC-NEXT: movq %rdi, %rax # sched: [1:0.33] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: lshift_optsize: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; ATOM-NEXT: shldq %cl, %rsi, %rdi # sched: [8:4.00] +; ATOM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: lshift_optsize: +; SLM: # BB#0: # %entry +; SLM-NEXT: movl %edx, %ecx # sched: [1:0.50] +; SLM-NEXT: shldq %cl, %rsi, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, %rax # sched: [1:0.50] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: lshift_optsize: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: movl %edx, %ecx # sched: [1:0.33] +; SANDY-NEXT: shldq %cl, %rsi, %rdi # sched: [4:1.50] +; SANDY-NEXT: movq %rdi, %rax # sched: [1:0.33] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: lshift_optsize: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; HASWELL-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; HASWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: lshift_optsize: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: movl %edx, %ecx # sched: [1:0.25] +; BROADWELL-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; BROADWELL-NEXT: movq %rdi, %rax # sched: [1:0.25] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: lshift_optsize: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKYLAKE-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; SKYLAKE-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: lshift_optsize: +; SKX: # BB#0: # %entry +; SKX-NEXT: movl %edx, %ecx # sched: [1:0.25] +; SKX-NEXT: shldq %cl, %rsi, %rdi # sched: [6:1.00] +; SKX-NEXT: movq %rdi, %rax # sched: [1:0.25] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: lshift_optsize: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: movl %edx, %ecx # sched: [1:0.50] +; BTVER2-NEXT: shldq %cl, %rsi, %rdi # sched: [4:4.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: lshift_optsize: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: movl %edx, %ecx # sched: [1:0.25] +; ZNVER1-NEXT: shldq %cl, %rsi, %rdi # sched: [100:?] +; ZNVER1-NEXT: movq %rdi, %rax # sched: [1:0.25] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: lshift_optsize: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: movl %edx, %ecx +; BDVER1-NEXT: shldq %cl, %rsi, %rdi +; BDVER1-NEXT: movq %rdi, %rax +; BDVER1-NEXT: retq +entry: + %sh_prom = zext i32 %c to i64 + %shl = shl i64 %a, %sh_prom + %sub = sub nsw i32 64, %c + %sh_prom1 = zext i32 %sub to i64 + %shr = lshr i64 %b, %sh_prom1 + %or = or i64 %shr, %shl + ret i64 %or +} + +@x = global i64 0, align 4 + +; TODO: we should use SHLD64mrCL instruction like +; shldq %cl, %rdi, {{.*}}(%rip) +define void @lshift_optsize_mem(i64 %a, i32 %c) nounwind readnone optsize { +; GENERIC-LABEL: lshift_optsize_mem: +; GENERIC: # BB#0: # %entry +; GENERIC-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50] +; GENERIC-NEXT: movl %esi, %ecx # sched: [1:0.33] +; GENERIC-NEXT: shldq %cl, %rax, %rdi # sched: [4:1.50] +; GENERIC-NEXT: movq %rdi, {{.*}}(%rip) # sched: [5:1.00] +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; ATOM-LABEL: lshift_optsize_mem: +; ATOM: # BB#0: # %entry +; ATOM-NEXT: movq {{.*}}(%rip), %rax # sched: [1:1.00] +; ATOM-NEXT: movl %esi, %ecx # sched: [1:0.50] +; ATOM-NEXT: shldq %cl, %rax, %rdi # sched: [8:4.00] +; ATOM-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; ATOM-NEXT: retq # sched: [79:39.50] +; +; SLM-LABEL: lshift_optsize_mem: +; SLM: # BB#0: # %entry +; SLM-NEXT: movq {{.*}}(%rip), %rax # sched: [3:1.00] +; SLM-NEXT: movl %esi, %ecx # sched: [1:0.50] +; SLM-NEXT: shldq %cl, %rax, %rdi # sched: [1:1.00] +; SLM-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; SLM-NEXT: retq # sched: [4:1.00] +; +; SANDY-LABEL: lshift_optsize_mem: +; SANDY: # BB#0: # %entry +; SANDY-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50] +; SANDY-NEXT: movl %esi, %ecx # sched: [1:0.33] +; SANDY-NEXT: shldq %cl, %rax, %rdi # sched: [4:1.50] +; SANDY-NEXT: movq %rdi, {{.*}}(%rip) # sched: [5:1.00] +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: lshift_optsize_mem: +; HASWELL: # BB#0: # %entry +; HASWELL-NEXT: movq {{.*}}(%rip), %rax # sched: [1:0.50] +; HASWELL-NEXT: movl %esi, %ecx # sched: [1:0.25] +; HASWELL-NEXT: shldq %cl, %rax, %rdi # sched: [6:1.00] +; HASWELL-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; HASWELL-NEXT: retq # sched: [2:1.00] +; +; BROADWELL-LABEL: lshift_optsize_mem: +; BROADWELL: # BB#0: # %entry +; BROADWELL-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50] +; BROADWELL-NEXT: movl %esi, %ecx # sched: [1:0.25] +; BROADWELL-NEXT: shldq %cl, %rax, %rdi # sched: [6:1.00] +; BROADWELL-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: lshift_optsize_mem: +; SKYLAKE: # BB#0: # %entry +; SKYLAKE-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50] +; SKYLAKE-NEXT: movl %esi, %ecx # sched: [1:0.25] +; SKYLAKE-NEXT: shldq %cl, %rax, %rdi # sched: [6:1.00] +; SKYLAKE-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: lshift_optsize_mem: +; SKX: # BB#0: # %entry +; SKX-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50] +; SKX-NEXT: movl %esi, %ecx # sched: [1:0.25] +; SKX-NEXT: shldq %cl, %rax, %rdi # sched: [6:1.00] +; SKX-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: lshift_optsize_mem: +; BTVER2: # BB#0: # %entry +; BTVER2-NEXT: movq {{.*}}(%rip), %rax # sched: [5:1.00] +; BTVER2-NEXT: movl %esi, %ecx # sched: [1:0.50] +; BTVER2-NEXT: shldq %cl, %rax, %rdi # sched: [4:4.00] +; BTVER2-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] +; +; ZNVER1-LABEL: lshift_optsize_mem: +; ZNVER1: # BB#0: # %entry +; ZNVER1-NEXT: movq {{.*}}(%rip), %rax # sched: [8:0.50] +; ZNVER1-NEXT: movl %esi, %ecx # sched: [1:0.25] +; ZNVER1-NEXT: shldq %cl, %rax, %rdi # sched: [100:?] +; ZNVER1-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:0.50] +; ZNVER1-NEXT: retq # sched: [1:0.50] +; +; BDVER1-LABEL: lshift_optsize_mem: +; BDVER1: # BB#0: # %entry +; BDVER1-NEXT: movq {{.*}}(%rip), %rax +; BDVER1-NEXT: movl %esi, %ecx +; BDVER1-NEXT: shldq %cl, %rax, %rdi +; BDVER1-NEXT: movq %rdi, {{.*}}(%rip) +; BDVER1-NEXT: retq +entry: + %sh_prom = zext i32 %c to i64 + %shl = shl i64 %a, %sh_prom + %sub = sub nsw i32 64, %c + %sh_prom1 = zext i32 %sub to i64 + %b = load i64, i64* @x + %shr = lshr i64 %b, %sh_prom1 + %or = or i64 %shl, %shr + store i64 %or, i64* @x + ret void +} Index: test/CodeGen/X86/schedule-x86_32.ll =================================================================== --- test/CodeGen/X86/schedule-x86_32.ll +++ test/CodeGen/X86/schedule-x86_32.ll @@ -82,7 +82,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: aaa # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aaa: ; ZNVER1: # BB#0: @@ -166,7 +166,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: aad # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aad: ; ZNVER1: # BB#0: @@ -250,7 +250,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: aam # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aam: ; ZNVER1: # BB#0: @@ -334,7 +334,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: aas # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_aas: ; ZNVER1: # BB#0: @@ -420,7 +420,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: daa # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_daa: ; ZNVER1: # BB#0: @@ -504,7 +504,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: das # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retl # sched: [4:1.00] +; BTVER2-NEXT: retl # sched: [1:1.00] ; ; ZNVER1-LABEL: test_das: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/schedule-x86_64.ll =================================================================== --- test/CodeGen/X86/schedule-x86_64.ll +++ test/CodeGen/X86/schedule-x86_64.ll @@ -104,7 +104,7 @@ ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsf16: ; ZNVER1: # BB#0: @@ -201,7 +201,7 @@ ; BTVER2-NEXT: bsfl (%rsi), %ecx # sched: [4:1.00] ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsf32: ; ZNVER1: # BB#0: @@ -297,7 +297,7 @@ ; BTVER2-NEXT: bsfq (%rsi), %rcx # sched: [4:1.00] ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsf64: ; ZNVER1: # BB#0: @@ -403,7 +403,7 @@ ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsr16: ; ZNVER1: # BB#0: @@ -500,7 +500,7 @@ ; BTVER2-NEXT: bsrl (%rsi), %ecx # sched: [4:1.00] ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsr32: ; ZNVER1: # BB#0: @@ -596,7 +596,7 @@ ; BTVER2-NEXT: bsrq (%rsi), %rcx # sched: [4:1.00] ; BTVER2-NEXT: #NO_APP ; BTVER2-NEXT: orq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bsr64: ; ZNVER1: # BB#0: @@ -665,8 +665,8 @@ ; BTVER2-LABEL: test_bswap32: ; BTVER2: # BB#0: ; BTVER2-NEXT: bswapl %edi # sched: [1:0.50] -; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bswap32: ; ZNVER1: # BB#0: @@ -728,8 +728,8 @@ ; BTVER2-LABEL: test_bswap64: ; BTVER2: # BB#0: ; BTVER2-NEXT: bswapq %rdi # sched: [1:0.50] -; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_bswap64: ; ZNVER1: # BB#0: @@ -854,7 +854,7 @@ ; BTVER2-NEXT: cwtd ; BTVER2-NEXT: cwtl ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cbw_cdq_cdqe_cqo_cwd_cwde: ; ZNVER1: # BB#0: @@ -951,7 +951,7 @@ ; BTVER2-NEXT: cld # sched: [1:0.50] ; BTVER2-NEXT: cmc # sched: [1:0.50] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_clc_cld_cmc: ; ZNVER1: # BB#0: @@ -1040,7 +1040,7 @@ ; BTVER2-NEXT: #APP ; BTVER2-NEXT: cpuid # sched: [100:0.17] ; BTVER2-NEXT: #NO_APP -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cpuid: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse-schedule.ll =================================================================== --- test/CodeGen/X86/sse-schedule.ll +++ test/CodeGen/X86/sse-schedule.ll @@ -64,7 +64,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addps: ; ZNVER1: # BB#0: @@ -130,7 +130,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddss (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addss: ; ZNVER1: # BB#0: @@ -200,7 +200,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vandps %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vandps (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andps: ; ZNVER1: # BB#0: @@ -274,7 +274,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vandnps %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vandnps (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andnotps: ; ZNVER1: # BB#0: @@ -356,7 +356,7 @@ ; BTVER2-NEXT: vcmpeqps %xmm1, %xmm0, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vcmpeqps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: vorps %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmpps: ; ZNVER1: # BB#0: @@ -426,7 +426,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vcmpeqss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcmpeqss (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmpss: ; ZNVER1: # BB#0: @@ -569,7 +569,7 @@ ; BTVER2-NEXT: andb %al, %dl # sched: [1:0.50] ; BTVER2-NEXT: orb %cl, %dl # sched: [1:0.50] ; BTVER2-NEXT: movzbl %dl, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_comiss: ; ZNVER1: # BB#0: @@ -654,7 +654,7 @@ ; BTVER2-NEXT: vcvtsi2ssl %edi, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtsi2ssl (%rsi), %xmm1, %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vaddss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsi2ss: ; ZNVER1: # BB#0: @@ -731,7 +731,7 @@ ; BTVER2-NEXT: vcvtsi2ssq %rdi, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtsi2ssq (%rsi), %xmm1, %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vaddss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsi2ssq: ; ZNVER1: # BB#0: @@ -808,7 +808,7 @@ ; BTVER2-NEXT: vcvtss2si (%rdi), %eax # sched: [8:1.00] ; BTVER2-NEXT: vcvtss2si %xmm0, %ecx # sched: [3:1.00] ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtss2si: ; ZNVER1: # BB#0: @@ -888,7 +888,7 @@ ; BTVER2-NEXT: vcvtss2si (%rdi), %rax # sched: [8:1.00] ; BTVER2-NEXT: vcvtss2si %xmm0, %rcx # sched: [3:1.00] ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtss2siq: ; ZNVER1: # BB#0: @@ -968,7 +968,7 @@ ; BTVER2-NEXT: vcvttss2si (%rdi), %eax # sched: [8:1.00] ; BTVER2-NEXT: vcvttss2si %xmm0, %ecx # sched: [3:1.00] ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttss2si: ; ZNVER1: # BB#0: @@ -1045,7 +1045,7 @@ ; BTVER2-NEXT: vcvttss2si (%rdi), %rax # sched: [8:1.00] ; BTVER2-NEXT: vcvttss2si %xmm0, %rcx # sched: [3:1.00] ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttss2siq: ; ZNVER1: # BB#0: @@ -1113,7 +1113,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivps %xmm1, %xmm0, %xmm0 # sched: [19:19.00] ; BTVER2-NEXT: vdivps (%rdi), %xmm0, %xmm0 # sched: [24:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divps: ; ZNVER1: # BB#0: @@ -1179,7 +1179,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivss %xmm1, %xmm0, %xmm0 # sched: [19:19.00] ; BTVER2-NEXT: vdivss (%rdi), %xmm0, %xmm0 # sched: [24:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divss: ; ZNVER1: # BB#0: @@ -1245,7 +1245,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00] ; BTVER2-NEXT: vldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ldmxcsr: ; ZNVER1: # BB#0: @@ -1313,7 +1313,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmaxps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxps: ; ZNVER1: # BB#0: @@ -1380,7 +1380,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmaxss (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxss: ; ZNVER1: # BB#0: @@ -1447,7 +1447,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vminps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minps: ; ZNVER1: # BB#0: @@ -1514,7 +1514,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vminss (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minss: ; ZNVER1: # BB#0: @@ -1590,7 +1590,7 @@ ; BTVER2-NEXT: vmovaps (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovaps %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movaps: ; ZNVER1: # BB#0: @@ -1656,7 +1656,7 @@ ; BTVER2-LABEL: test_movhlps: ; BTVER2: # BB#0: ; BTVER2-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1] sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movhlps: ; ZNVER1: # BB#0: @@ -1732,7 +1732,7 @@ ; BTVER2-NEXT: vmovhpd {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [6:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vpextrq $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movhps: ; ZNVER1: # BB#0: @@ -1805,7 +1805,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:0.50] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movlhps: ; ZNVER1: # BB#0: @@ -1879,7 +1879,7 @@ ; BTVER2-NEXT: vmovlpd {{.*#+}} xmm1 = mem[0],xmm1[1] sched: [6:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovlps %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movlps: ; ZNVER1: # BB#0: @@ -1943,7 +1943,7 @@ ; BTVER2-LABEL: test_movmskps: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovmskps %xmm0, %eax # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movmskps: ; ZNVER1: # BB#0: @@ -2004,7 +2004,7 @@ ; BTVER2-LABEL: test_movntps: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovntps %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntps: ; ZNVER1: # BB#0: @@ -2076,7 +2076,7 @@ ; BTVER2-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [5:1.00] ; BTVER2-NEXT: vaddss %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovss %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movss_mem: ; ZNVER1: # BB#0: @@ -2140,7 +2140,7 @@ ; BTVER2-LABEL: test_movss_reg: ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3] sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movss_reg: ; ZNVER1: # BB#0: @@ -2212,7 +2212,7 @@ ; BTVER2-NEXT: vmovups (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovups %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movups: ; ZNVER1: # BB#0: @@ -2279,7 +2279,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulps %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vmulps (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulps: ; ZNVER1: # BB#0: @@ -2345,7 +2345,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulss %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vmulss (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulss: ; ZNVER1: # BB#0: @@ -2415,7 +2415,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vorps %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vorps (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_orps: ; ZNVER1: # BB#0: @@ -2482,7 +2482,7 @@ ; BTVER2-LABEL: test_prefetchnta: ; BTVER2: # BB#0: ; BTVER2-NEXT: prefetchnta (%rdi) # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_prefetchnta: ; ZNVER1: # BB#0: @@ -2557,7 +2557,7 @@ ; BTVER2-NEXT: vrcpps (%rdi), %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vrcpps %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rcpps: ; ZNVER1: # BB#0: @@ -2646,7 +2646,7 @@ ; BTVER2-NEXT: vrcpss %xmm0, %xmm0, %xmm0 # sched: [7:1.00] ; BTVER2-NEXT: vrcpss %xmm1, %xmm1, %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rcpss: ; ZNVER1: # BB#0: @@ -2729,7 +2729,7 @@ ; BTVER2-NEXT: vrsqrtps (%rdi), %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vrsqrtps %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rsqrtps: ; ZNVER1: # BB#0: @@ -2818,7 +2818,7 @@ ; BTVER2-NEXT: vrsqrtss %xmm0, %xmm0, %xmm0 # sched: [7:1.00] ; BTVER2-NEXT: vrsqrtss %xmm1, %xmm1, %xmm1 # sched: [7:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_rsqrtss: ; ZNVER1: # BB#0: @@ -2887,7 +2887,7 @@ ; BTVER2-LABEL: test_sfence: ; BTVER2: # BB#0: ; BTVER2-NEXT: sfence # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sfence: ; ZNVER1: # BB#0: @@ -2955,7 +2955,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,0],xmm1[0,0] sched: [1:0.50] ; BTVER2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,3],mem[0,0] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_shufps: ; ZNVER1: # BB#0: @@ -3031,7 +3031,7 @@ ; BTVER2-NEXT: vsqrtps (%rdi), %xmm1 # sched: [26:21.00] ; BTVER2-NEXT: vsqrtps %xmm0, %xmm0 # sched: [21:21.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtps: ; ZNVER1: # BB#0: @@ -3120,7 +3120,7 @@ ; BTVER2-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 # sched: [26:21.00] ; BTVER2-NEXT: vsqrtss %xmm1, %xmm1, %xmm1 # sched: [26:21.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtss: ; ZNVER1: # BB#0: @@ -3190,7 +3190,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vstmxcsr -{{[0-9]+}}(%rsp) # sched: [1:1.00] ; BTVER2-NEXT: movl -{{[0-9]+}}(%rsp), %eax # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_stmxcsr: ; ZNVER1: # BB#0: @@ -3258,7 +3258,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vsubps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subps: ; ZNVER1: # BB#0: @@ -3324,7 +3324,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vsubss (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subss: ; ZNVER1: # BB#0: @@ -3462,7 +3462,7 @@ ; BTVER2-NEXT: andb %al, %dl # sched: [1:0.50] ; BTVER2-NEXT: orb %cl, %dl # sched: [1:0.50] ; BTVER2-NEXT: movzbl %dl, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ucomiss: ; ZNVER1: # BB#0: @@ -3542,7 +3542,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:0.50] ; BTVER2-NEXT: vunpckhps {{.*#+}} xmm0 = xmm0[2],mem[2],xmm0[3],mem[3] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpckhps: ; ZNVER1: # BB#0: @@ -3612,7 +3612,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] sched: [1:0.50] ; BTVER2-NEXT: vunpcklps {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpcklps: ; ZNVER1: # BB#0: @@ -3682,7 +3682,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vxorps %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vxorps (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_xorps: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse2-schedule.ll =================================================================== --- test/CodeGen/X86/sse2-schedule.ll +++ test/CodeGen/X86/sse2-schedule.ll @@ -64,7 +64,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addpd: ; ZNVER1: # BB#0: @@ -130,7 +130,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddsd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addsd: ; ZNVER1: # BB#0: @@ -205,7 +205,7 @@ ; BTVER2-NEXT: vandpd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vandpd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andpd: ; ZNVER1: # BB#0: @@ -286,7 +286,7 @@ ; BTVER2-NEXT: vandnpd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vandnpd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_andnotpd: ; ZNVER1: # BB#0: @@ -357,7 +357,7 @@ ; BTVER2-LABEL: test_clflush: ; BTVER2: # BB#0: ; BTVER2-NEXT: clflush (%rdi) # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_clflush: ; ZNVER1: # BB#0: @@ -431,7 +431,7 @@ ; BTVER2-NEXT: vcmpeqpd %xmm1, %xmm0, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vcmpeqpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: vorpd %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmppd: ; ZNVER1: # BB#0: @@ -501,7 +501,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vcmpeqsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcmpeqsd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cmpsd: ; ZNVER1: # BB#0: @@ -644,7 +644,7 @@ ; BTVER2-NEXT: andb %al, %dl # sched: [1:0.50] ; BTVER2-NEXT: orb %cl, %dl # sched: [1:0.50] ; BTVER2-NEXT: movzbl %dl, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_comisd: ; ZNVER1: # BB#0: @@ -729,7 +729,7 @@ ; BTVER2-NEXT: vcvtdq2pd (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtdq2pd %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtdq2pd: ; ZNVER1: # BB#0: @@ -809,7 +809,7 @@ ; BTVER2-NEXT: vcvtdq2ps (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtdq2ps %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtdq2ps: ; ZNVER1: # BB#0: @@ -887,7 +887,7 @@ ; BTVER2-NEXT: vcvtpd2dqx (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtpd2dq %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpd2dq: ; ZNVER1: # BB#0: @@ -966,7 +966,7 @@ ; BTVER2-NEXT: vcvtpd2psx (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtpd2ps %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtpd2ps: ; ZNVER1: # BB#0: @@ -1045,7 +1045,7 @@ ; BTVER2-NEXT: vcvtps2dq (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtps2dq %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtps2dq: ; ZNVER1: # BB#0: @@ -1124,7 +1124,7 @@ ; BTVER2-NEXT: vcvtps2pd (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvtps2pd %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtps2pd: ; ZNVER1: # BB#0: @@ -1203,7 +1203,7 @@ ; BTVER2-NEXT: vcvtsd2si (%rdi), %eax # sched: [8:1.00] ; BTVER2-NEXT: vcvtsd2si %xmm0, %ecx # sched: [3:1.00] ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsd2si: ; ZNVER1: # BB#0: @@ -1283,7 +1283,7 @@ ; BTVER2-NEXT: vcvtsd2si (%rdi), %rax # sched: [8:1.00] ; BTVER2-NEXT: vcvtsd2si %xmm0, %rcx # sched: [3:1.00] ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsd2siq: ; ZNVER1: # BB#0: @@ -1373,7 +1373,7 @@ ; BTVER2-NEXT: vcvtsd2ss %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtsd2ss %xmm1, %xmm1, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vaddss %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsd2ss: ; ZNVER1: # BB#0: @@ -1451,7 +1451,7 @@ ; BTVER2-NEXT: vcvtsi2sdl %edi, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtsi2sdl (%rsi), %xmm1, %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vaddsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsi2sd: ; ZNVER1: # BB#0: @@ -1528,7 +1528,7 @@ ; BTVER2-NEXT: vcvtsi2sdq %rdi, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtsi2sdq (%rsi), %xmm1, %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vaddsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtsi2sdq: ; ZNVER1: # BB#0: @@ -1617,7 +1617,7 @@ ; BTVER2-NEXT: vcvtss2sd %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vcvtss2sd %xmm1, %xmm1, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vaddsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvtss2sd: ; ZNVER1: # BB#0: @@ -1696,7 +1696,7 @@ ; BTVER2-NEXT: vcvttpd2dqx (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvttpd2dq %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttpd2dq: ; ZNVER1: # BB#0: @@ -1776,7 +1776,7 @@ ; BTVER2-NEXT: vcvttps2dq (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vcvttps2dq %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttps2dq: ; ZNVER1: # BB#0: @@ -1853,7 +1853,7 @@ ; BTVER2-NEXT: vcvttsd2si (%rdi), %eax # sched: [8:1.00] ; BTVER2-NEXT: vcvttsd2si %xmm0, %ecx # sched: [3:1.00] ; BTVER2-NEXT: addl %ecx, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttsd2si: ; ZNVER1: # BB#0: @@ -1930,7 +1930,7 @@ ; BTVER2-NEXT: vcvttsd2si (%rdi), %rax # sched: [8:1.00] ; BTVER2-NEXT: vcvttsd2si %xmm0, %rcx # sched: [3:1.00] ; BTVER2-NEXT: addq %rcx, %rax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_cvttsd2siq: ; ZNVER1: # BB#0: @@ -1998,7 +1998,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivpd %xmm1, %xmm0, %xmm0 # sched: [19:19.00] ; BTVER2-NEXT: vdivpd (%rdi), %xmm0, %xmm0 # sched: [24:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divpd: ; ZNVER1: # BB#0: @@ -2064,7 +2064,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdivsd %xmm1, %xmm0, %xmm0 # sched: [19:19.00] ; BTVER2-NEXT: vdivsd (%rdi), %xmm0, %xmm0 # sched: [24:19.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_divsd: ; ZNVER1: # BB#0: @@ -2127,7 +2127,7 @@ ; BTVER2-LABEL: test_lfence: ; BTVER2: # BB#0: ; BTVER2-NEXT: lfence # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lfence: ; ZNVER1: # BB#0: @@ -2188,7 +2188,7 @@ ; BTVER2-LABEL: test_mfence: ; BTVER2: # BB#0: ; BTVER2-NEXT: mfence # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mfence: ; ZNVER1: # BB#0: @@ -2247,7 +2247,7 @@ ; BTVER2-LABEL: test_maskmovdqu: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaskmovdqu %xmm1, %xmm0 # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maskmovdqu: ; ZNVER1: # BB#0: @@ -2311,7 +2311,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmaxpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxpd: ; ZNVER1: # BB#0: @@ -2378,7 +2378,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmaxsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmaxsd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_maxsd: ; ZNVER1: # BB#0: @@ -2445,7 +2445,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vminpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minpd: ; ZNVER1: # BB#0: @@ -2512,7 +2512,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vminsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vminsd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_minsd: ; ZNVER1: # BB#0: @@ -2588,7 +2588,7 @@ ; BTVER2-NEXT: vmovapd (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovapd %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movapd: ; ZNVER1: # BB#0: @@ -2664,7 +2664,7 @@ ; BTVER2-NEXT: vmovdqa (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vpaddq %xmm0, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vmovdqa %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movdqa: ; ZNVER1: # BB#0: @@ -2740,7 +2740,7 @@ ; BTVER2-NEXT: vmovdqu (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vpaddq %xmm0, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vmovdqu %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movdqu: ; ZNVER1: # BB#0: @@ -2838,12 +2838,12 @@ ; BTVER2-LABEL: test_movd: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovd {{.*#+}} xmm2 = mem[0],zero,zero,zero sched: [5:1.00] -; BTVER2-NEXT: vmovd %edi, %xmm1 # sched: [1:0.17] +; BTVER2-NEXT: vmovd %edi, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vmovd %xmm1, (%rsi) # sched: [1:1.00] ; BTVER2-NEXT: vpaddd %xmm2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: vmovd %xmm0, %eax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: vmovd %xmm0, %eax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movd: ; ZNVER1: # BB#0: @@ -2949,12 +2949,12 @@ ; BTVER2-LABEL: test_movd_64: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovq {{.*#+}} xmm2 = mem[0],zero sched: [5:1.00] -; BTVER2-NEXT: vmovq %rdi, %xmm1 # sched: [1:0.17] +; BTVER2-NEXT: vmovq %rdi, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vmovq %xmm1, (%rsi) # sched: [1:1.00] ; BTVER2-NEXT: vpaddq %xmm2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: vmovq %xmm0, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: vmovq %xmm0, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movd_64: ; ZNVER1: # BB#0: @@ -3038,7 +3038,7 @@ ; BTVER2-NEXT: vmovhpd {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovhpd %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movhpd: ; ZNVER1: # BB#0: @@ -3117,7 +3117,7 @@ ; BTVER2-NEXT: vmovlpd {{.*#+}} xmm1 = mem[0],xmm1[1] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovlpd %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movlpd: ; ZNVER1: # BB#0: @@ -3180,7 +3180,7 @@ ; BTVER2-LABEL: test_movmskpd: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovmskpd %xmm0, %eax # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movmskpd: ; ZNVER1: # BB#0: @@ -3246,7 +3246,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddq %xmm0, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vmovntdq %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntdqa: ; ZNVER1: # BB#0: @@ -3311,7 +3311,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddpd %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovntpd %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntpd: ; ZNVER1: # BB#0: @@ -3385,7 +3385,7 @@ ; BTVER2-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero sched: [5:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vmovq %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movq_mem: ; ZNVER1: # BB#0: @@ -3456,7 +3456,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movq_reg: ; ZNVER1: # BB#0: @@ -3530,7 +3530,7 @@ ; BTVER2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero sched: [5:1.00] ; BTVER2-NEXT: vaddsd %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovsd %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movsd_mem: ; ZNVER1: # BB#0: @@ -3595,7 +3595,7 @@ ; BTVER2-LABEL: test_movsd_reg: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0] sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movsd_reg: ; ZNVER1: # BB#0: @@ -3667,7 +3667,7 @@ ; BTVER2-NEXT: vmovupd (%rdi), %xmm0 # sched: [5:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vmovupd %xmm0, (%rsi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movupd: ; ZNVER1: # BB#0: @@ -3734,7 +3734,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulpd %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vmulpd (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulpd: ; ZNVER1: # BB#0: @@ -3800,7 +3800,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmulsd %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vmulsd (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mulsd: ; ZNVER1: # BB#0: @@ -3875,7 +3875,7 @@ ; BTVER2-NEXT: vorpd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vorpd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_orpd: ; ZNVER1: # BB#0: @@ -3951,7 +3951,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpackssdw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packssdw: ; ZNVER1: # BB#0: @@ -4023,7 +4023,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpacksswb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packsswb: ; ZNVER1: # BB#0: @@ -4095,7 +4095,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpackuswb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packuswb: ; ZNVER1: # BB#0: @@ -4167,7 +4167,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddb: ; ZNVER1: # BB#0: @@ -4237,7 +4237,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddd: ; ZNVER1: # BB#0: @@ -4303,7 +4303,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddq: ; ZNVER1: # BB#0: @@ -4373,7 +4373,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddsb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddsb: ; ZNVER1: # BB#0: @@ -4444,7 +4444,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddsw: ; ZNVER1: # BB#0: @@ -4515,7 +4515,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddusb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddusb: ; ZNVER1: # BB#0: @@ -4586,7 +4586,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddusw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddusw: ; ZNVER1: # BB#0: @@ -4657,7 +4657,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_paddw: ; ZNVER1: # BB#0: @@ -4732,7 +4732,7 @@ ; BTVER2-NEXT: vpand %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpand (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pand: ; ZNVER1: # BB#0: @@ -4815,7 +4815,7 @@ ; BTVER2-NEXT: vpandn %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpandn (%rdi), %xmm0, %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pandn: ; ZNVER1: # BB#0: @@ -4889,7 +4889,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpavgb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpavgb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pavgb: ; ZNVER1: # BB#0: @@ -4969,7 +4969,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpavgw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpavgw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pavgw: ; ZNVER1: # BB#0: @@ -5057,7 +5057,7 @@ ; BTVER2-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpeqb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqb: ; ZNVER1: # BB#0: @@ -5138,7 +5138,7 @@ ; BTVER2-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpeqd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqd: ; ZNVER1: # BB#0: @@ -5219,7 +5219,7 @@ ; BTVER2-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpeqw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqw: ; ZNVER1: # BB#0: @@ -5301,7 +5301,7 @@ ; BTVER2-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpgtb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtb: ; ZNVER1: # BB#0: @@ -5383,7 +5383,7 @@ ; BTVER2-NEXT: vpcmpgtd %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpeqd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtd: ; ZNVER1: # BB#0: @@ -5465,7 +5465,7 @@ ; BTVER2-NEXT: vpcmpgtw %xmm1, %xmm0, %xmm1 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpgtw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpor %xmm0, %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtw: ; ZNVER1: # BB#0: @@ -5534,7 +5534,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpextrw $6, %xmm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: # kill: %AX %AX %EAX -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrw: ; ZNVER1: # BB#0: @@ -5602,7 +5602,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpinsrw $1, %edi, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpinsrw $3, (%rsi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pinsrw: ; ZNVER1: # BB#0: @@ -5676,7 +5676,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmaddwd (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaddwd: ; ZNVER1: # BB#0: @@ -5748,7 +5748,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxsw: ; ZNVER1: # BB#0: @@ -5819,7 +5819,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxub (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxub: ; ZNVER1: # BB#0: @@ -5890,7 +5890,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminsw: ; ZNVER1: # BB#0: @@ -5961,7 +5961,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminub %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminub (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminub: ; ZNVER1: # BB#0: @@ -6021,7 +6021,7 @@ ; BTVER2-LABEL: test_pmovmskb: ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmovmskb %xmm0, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovmskb: ; ZNVER1: # BB#0: @@ -6085,7 +6085,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmulhuw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhuw: ; ZNVER1: # BB#0: @@ -6152,7 +6152,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmulhw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhw: ; ZNVER1: # BB#0: @@ -6219,7 +6219,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmullw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmullw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmullw: ; ZNVER1: # BB#0: @@ -6293,7 +6293,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmuludq (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmuludq: ; ZNVER1: # BB#0: @@ -6370,7 +6370,7 @@ ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpor (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_por: ; ZNVER1: # BB#0: @@ -6446,7 +6446,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpsadbw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psadbw: ; ZNVER1: # BB#0: @@ -6525,7 +6525,7 @@ ; BTVER2-NEXT: vpshufd {{.*#+}} xmm1 = mem[3,2,1,0] sched: [6:1.00] ; BTVER2-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[1,0,3,2] sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshufd: ; ZNVER1: # BB#0: @@ -6604,7 +6604,7 @@ ; BTVER2-NEXT: vpshufhw {{.*#+}} xmm1 = mem[0,1,2,3,7,6,5,4] sched: [6:1.00] ; BTVER2-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,6] sched: [1:0.50] ; BTVER2-NEXT: vpaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshufhw: ; ZNVER1: # BB#0: @@ -6683,7 +6683,7 @@ ; BTVER2-NEXT: vpshuflw {{.*#+}} xmm1 = mem[3,2,1,0,4,5,6,7] sched: [6:1.00] ; BTVER2-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7] sched: [1:0.50] ; BTVER2-NEXT: vpaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshuflw: ; ZNVER1: # BB#0: @@ -6760,7 +6760,7 @@ ; BTVER2-NEXT: vpslld %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpslld (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpslld $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pslld: ; ZNVER1: # BB#0: @@ -6827,7 +6827,7 @@ ; BTVER2-LABEL: test_pslldq: ; BTVER2: # BB#0: ; BTVER2-NEXT: vpslldq {{.*#+}} xmm0 = zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11] sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pslldq: ; ZNVER1: # BB#0: @@ -6899,7 +6899,7 @@ ; BTVER2-NEXT: vpsllq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsllq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsllq $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psllq: ; ZNVER1: # BB#0: @@ -6978,7 +6978,7 @@ ; BTVER2-NEXT: vpsllw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsllw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsllw $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psllw: ; ZNVER1: # BB#0: @@ -7057,7 +7057,7 @@ ; BTVER2-NEXT: vpsrad %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsrad (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsrad $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrad: ; ZNVER1: # BB#0: @@ -7136,7 +7136,7 @@ ; BTVER2-NEXT: vpsraw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsraw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsraw $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psraw: ; ZNVER1: # BB#0: @@ -7215,7 +7215,7 @@ ; BTVER2-NEXT: vpsrld %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsrld (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsrld $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrld: ; ZNVER1: # BB#0: @@ -7282,7 +7282,7 @@ ; BTVER2-LABEL: test_psrldq: ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsrldq {{.*#+}} xmm0 = xmm0[4,5,6,7,8,9,10,11,12,13,14,15],zero,zero,zero,zero sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrldq: ; ZNVER1: # BB#0: @@ -7354,7 +7354,7 @@ ; BTVER2-NEXT: vpsrlq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsrlq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsrlq $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrlq: ; ZNVER1: # BB#0: @@ -7433,7 +7433,7 @@ ; BTVER2-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsrlw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpsrlw $2, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psrlw: ; ZNVER1: # BB#0: @@ -7507,7 +7507,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubb: ; ZNVER1: # BB#0: @@ -7577,7 +7577,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubd: ; ZNVER1: # BB#0: @@ -7643,7 +7643,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubq: ; ZNVER1: # BB#0: @@ -7713,7 +7713,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubsb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubsb: ; ZNVER1: # BB#0: @@ -7784,7 +7784,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubsw: ; ZNVER1: # BB#0: @@ -7855,7 +7855,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubusb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubusb: ; ZNVER1: # BB#0: @@ -7926,7 +7926,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubusw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubusw: ; ZNVER1: # BB#0: @@ -7997,7 +7997,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsubw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsubw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psubw: ; ZNVER1: # BB#0: @@ -8067,7 +8067,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpunpckhbw {{.*#+}} xmm0 = xmm0[8],xmm1[8],xmm0[9],xmm1[9],xmm0[10],xmm1[10],xmm0[11],xmm1[11],xmm0[12],xmm1[12],xmm0[13],xmm1[13],xmm0[14],xmm1[14],xmm0[15],xmm1[15] sched: [1:0.50] ; BTVER2-NEXT: vpunpckhbw {{.*#+}} xmm0 = xmm0[8],mem[8],xmm0[9],mem[9],xmm0[10],mem[10],xmm0[11],mem[11],xmm0[12],mem[12],xmm0[13],mem[13],xmm0[14],mem[14],xmm0[15],mem[15] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhbw: ; ZNVER1: # BB#0: @@ -8144,7 +8144,7 @@ ; BTVER2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:0.50] ; BTVER2-NEXT: vpunpckhdq {{.*#+}} xmm1 = xmm1[2],mem[2],xmm1[3],mem[3] sched: [6:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhdq: ; ZNVER1: # BB#0: @@ -8221,7 +8221,7 @@ ; BTVER2-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1] sched: [1:0.50] ; BTVER2-NEXT: vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],mem[1] sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhqdq: ; ZNVER1: # BB#0: @@ -8293,7 +8293,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7] sched: [1:0.50] ; BTVER2-NEXT: vpunpckhwd {{.*#+}} xmm0 = xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckhwd: ; ZNVER1: # BB#0: @@ -8363,7 +8363,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7] sched: [1:0.50] ; BTVER2-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3],xmm0[4],mem[4],xmm0[5],mem[5],xmm0[6],mem[6],xmm0[7],mem[7] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpcklbw: ; ZNVER1: # BB#0: @@ -8440,7 +8440,7 @@ ; BTVER2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] sched: [1:0.50] ; BTVER2-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1] sched: [6:1.00] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpckldq: ; ZNVER1: # BB#0: @@ -8517,7 +8517,7 @@ ; BTVER2-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:0.50] ; BTVER2-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0] sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpcklqdq: ; ZNVER1: # BB#0: @@ -8589,7 +8589,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3] sched: [1:0.50] ; BTVER2-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],mem[0],xmm0[1],mem[1],xmm0[2],mem[2],xmm0[3],mem[3] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_punpcklwd: ; ZNVER1: # BB#0: @@ -8664,7 +8664,7 @@ ; BTVER2-NEXT: vpxor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpxor (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pxor: ; ZNVER1: # BB#0: @@ -8741,7 +8741,7 @@ ; BTVER2-NEXT: vshufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0] sched: [1:0.50] ; BTVER2-NEXT: vshufpd {{.*#+}} xmm1 = xmm1[1],mem[0] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_shufpd: ; ZNVER1: # BB#0: @@ -8819,7 +8819,7 @@ ; BTVER2-NEXT: vsqrtpd (%rdi), %xmm1 # sched: [26:21.00] ; BTVER2-NEXT: vsqrtpd %xmm0, %xmm0 # sched: [21:21.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtpd: ; ZNVER1: # BB#0: @@ -8908,7 +8908,7 @@ ; BTVER2-NEXT: vsqrtsd %xmm0, %xmm0, %xmm0 # sched: [26:21.00] ; BTVER2-NEXT: vsqrtsd %xmm1, %xmm1, %xmm1 # sched: [26:21.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_sqrtsd: ; ZNVER1: # BB#0: @@ -8978,7 +8978,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vsubpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subpd: ; ZNVER1: # BB#0: @@ -9044,7 +9044,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vsubsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vsubsd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_subsd: ; ZNVER1: # BB#0: @@ -9182,7 +9182,7 @@ ; BTVER2-NEXT: andb %al, %dl # sched: [1:0.50] ; BTVER2-NEXT: orb %cl, %dl # sched: [1:0.50] ; BTVER2-NEXT: movzbl %dl, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ucomisd: ; ZNVER1: # BB#0: @@ -9267,7 +9267,7 @@ ; BTVER2-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1] sched: [1:0.50] ; BTVER2-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpckhpd: ; ZNVER1: # BB#0: @@ -9350,7 +9350,7 @@ ; BTVER2-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0] sched: [1:0.50] ; BTVER2-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0] sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_unpcklpd: ; ZNVER1: # BB#0: @@ -9427,7 +9427,7 @@ ; BTVER2-NEXT: vxorpd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vxorpd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_xorpd: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse3-schedule.ll =================================================================== --- test/CodeGen/X86/sse3-schedule.ll +++ test/CodeGen/X86/sse3-schedule.ll @@ -64,7 +64,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddsubpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddsubpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addsubpd: ; ZNVER1: # BB#0: @@ -131,7 +131,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vaddsubps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddsubps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_addsubps: ; ZNVER1: # BB#0: @@ -198,7 +198,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vhaddpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_haddpd: ; ZNVER1: # BB#0: @@ -265,7 +265,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vhaddps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_haddps: ; ZNVER1: # BB#0: @@ -332,7 +332,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhsubpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vhsubpd (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_hsubpd: ; ZNVER1: # BB#0: @@ -399,7 +399,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vhsubps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vhsubps (%rdi), %xmm0, %xmm0 # sched: [8:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_hsubps: ; ZNVER1: # BB#0: @@ -459,7 +459,7 @@ ; BTVER2-LABEL: test_lddqu: ; BTVER2: # BB#0: ; BTVER2-NEXT: vlddqu (%rdi), %xmm0 # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_lddqu: ; ZNVER1: # BB#0: @@ -530,9 +530,9 @@ ; BTVER2-LABEL: test_monitor: ; BTVER2: # BB#0: ; BTVER2-NEXT: leaq (%rdi), %rax # sched: [1:0.50] -; BTVER2-NEXT: movl %esi, %ecx # sched: [1:0.17] +; BTVER2-NEXT: movl %esi, %ecx # sched: [1:0.50] ; BTVER2-NEXT: monitor # sched: [100:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_monitor: ; ZNVER1: # BB#0: @@ -608,7 +608,7 @@ ; BTVER2-NEXT: vmovddup {{.*#+}} xmm1 = mem[0,0] sched: [5:1.00] ; BTVER2-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] sched: [1:0.50] ; BTVER2-NEXT: vsubpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movddup: ; ZNVER1: # BB#0: @@ -686,7 +686,7 @@ ; BTVER2-NEXT: vmovshdup {{.*#+}} xmm1 = mem[1,1,3,3] sched: [5:1.00] ; BTVER2-NEXT: vmovshdup {{.*#+}} xmm0 = xmm0[1,1,3,3] sched: [1:0.50] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movshdup: ; ZNVER1: # BB#0: @@ -764,7 +764,7 @@ ; BTVER2-NEXT: vmovsldup {{.*#+}} xmm1 = mem[0,0,2,2] sched: [5:1.00] ; BTVER2-NEXT: vmovsldup {{.*#+}} xmm0 = xmm0[0,0,2,2] sched: [1:0.50] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movsldup: ; ZNVER1: # BB#0: @@ -838,10 +838,10 @@ ; ; BTVER2-LABEL: test_mwait: ; BTVER2: # BB#0: -; BTVER2-NEXT: movl %edi, %ecx # sched: [1:0.17] -; BTVER2-NEXT: movl %esi, %eax # sched: [1:0.17] +; BTVER2-NEXT: movl %edi, %ecx # sched: [1:0.50] +; BTVER2-NEXT: movl %esi, %eax # sched: [1:0.50] ; BTVER2-NEXT: mwait # sched: [100:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mwait: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse41-schedule.ll =================================================================== --- test/CodeGen/X86/sse41-schedule.ll +++ test/CodeGen/X86/sse41-schedule.ll @@ -66,7 +66,7 @@ ; BTVER2-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],xmm1[1] sched: [1:0.50] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vblendpd {{.*#+}} xmm0 = xmm0[0],mem[1] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendpd: ; ZNVER1: # BB#0: @@ -128,7 +128,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1,2],xmm0[3] sched: [1:0.50] ; BTVER2-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0],mem[1],xmm0[2,3] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendps: ; ZNVER1: # BB#0: @@ -194,7 +194,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendvpd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [2:2.00] ; BTVER2-NEXT: vblendvpd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendvpd: ; ZNVER1: # BB#0: @@ -261,7 +261,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vblendvps %xmm2, %xmm1, %xmm0, %xmm0 # sched: [2:2.00] ; BTVER2-NEXT: vblendvps %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_blendvps: ; ZNVER1: # BB#0: @@ -322,7 +322,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdppd $7, %xmm1, %xmm0, %xmm0 # sched: [9:3.00] ; BTVER2-NEXT: vdppd $7, (%rdi), %xmm0, %xmm0 # sched: [14:3.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_dppd: ; ZNVER1: # BB#0: @@ -383,7 +383,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vdpps $7, %xmm1, %xmm0, %xmm0 # sched: [11:3.00] ; BTVER2-NEXT: vdpps $7, (%rdi), %xmm0, %xmm0 # sched: [16:3.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_dpps: ; ZNVER1: # BB#0: @@ -444,7 +444,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vextractps $3, %xmm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: vextractps $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_extractps: ; ZNVER1: # BB#0: @@ -506,7 +506,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vinsertps {{.*#+}} xmm0 = zero,xmm1[0],xmm0[2,3] sched: [1:0.50] ; BTVER2-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_insertps: ; ZNVER1: # BB#0: @@ -559,7 +559,7 @@ ; BTVER2-LABEL: test_movntdqa: ; BTVER2: # BB#0: ; BTVER2-NEXT: vmovntdqa (%rdi), %xmm0 # sched: [5:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntdqa: ; ZNVER1: # BB#0: @@ -617,7 +617,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vmpsadbw $7, %xmm1, %xmm0, %xmm0 # sched: [3:2.00] ; BTVER2-NEXT: vmpsadbw $7, (%rdi), %xmm0, %xmm0 # sched: [8:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_mpsadbw: ; ZNVER1: # BB#0: @@ -679,7 +679,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpackusdw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_packusdw: ; ZNVER1: # BB#0: @@ -747,7 +747,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpblendvb %xmm2, %xmm1, %xmm0, %xmm0 # sched: [2:2.00] ; BTVER2-NEXT: vpblendvb %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pblendvb: ; ZNVER1: # BB#0: @@ -808,7 +808,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3],xmm0[4],xmm1[5],xmm0[6],xmm1[7] sched: [1:0.50] ; BTVER2-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1],mem[2,3],xmm0[4,5,6],mem[7] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pblendw: ; ZNVER1: # BB#0: @@ -870,7 +870,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpeqq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpeqq: ; ZNVER1: # BB#0: @@ -932,7 +932,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpextrb $3, %xmm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: vpextrb $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrb: ; ZNVER1: # BB#0: @@ -1001,7 +1001,7 @@ ; BTVER2-NEXT: vpaddd %xmm0, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpextrd $3, %xmm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: vpextrd $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrd: ; ZNVER1: # BB#0: @@ -1063,7 +1063,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpextrq $1, %xmm0, %rax # sched: [1:0.50] ; BTVER2-NEXT: vpextrq $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrq: ; ZNVER1: # BB#0: @@ -1123,7 +1123,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpextrw $3, %xmm0, %eax # sched: [1:0.50] ; BTVER2-NEXT: vpextrw $1, %xmm0, (%rdi) # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pextrw: ; ZNVER1: # BB#0: @@ -1184,7 +1184,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphminposuw (%rdi), %xmm0 # sched: [7:1.00] ; BTVER2-NEXT: vphminposuw %xmm0, %xmm0 # sched: [2:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phminposuw: ; ZNVER1: # BB#0: @@ -1245,7 +1245,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpinsrb $1, %edi, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpinsrb $3, (%rsi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pinsrb: ; ZNVER1: # BB#0: @@ -1305,7 +1305,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpinsrd $1, %edi, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpinsrd $3, (%rsi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pinsrd: ; ZNVER1: # BB#0: @@ -1373,7 +1373,7 @@ ; BTVER2-NEXT: vpinsrq $1, (%rsi), %xmm1, %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpinsrq $1, %rdi, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pinsrq: ; ZNVER1: # BB#0: @@ -1435,7 +1435,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxsb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxsb: ; ZNVER1: # BB#0: @@ -1496,7 +1496,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxsd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxsd: ; ZNVER1: # BB#0: @@ -1557,7 +1557,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxud (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxud: ; ZNVER1: # BB#0: @@ -1618,7 +1618,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpmaxuw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaxuw: ; ZNVER1: # BB#0: @@ -1679,7 +1679,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminsb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminsb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminsb: ; ZNVER1: # BB#0: @@ -1740,7 +1740,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminsd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminsd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminsd: ; ZNVER1: # BB#0: @@ -1801,7 +1801,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminud %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminud (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminud: ; ZNVER1: # BB#0: @@ -1862,7 +1862,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpminuw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpminuw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pminuw: ; ZNVER1: # BB#0: @@ -1932,7 +1932,7 @@ ; BTVER2-NEXT: vpmovsxbw (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxbw %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxbw: ; ZNVER1: # BB#0: @@ -2004,7 +2004,7 @@ ; BTVER2-NEXT: vpmovsxbd (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxbd %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxbd: ; ZNVER1: # BB#0: @@ -2076,7 +2076,7 @@ ; BTVER2-NEXT: vpmovsxbq (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxbq %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxbq: ; ZNVER1: # BB#0: @@ -2148,7 +2148,7 @@ ; BTVER2-NEXT: vpmovsxdq (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxdq %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxdq: ; ZNVER1: # BB#0: @@ -2220,7 +2220,7 @@ ; BTVER2-NEXT: vpmovsxwd (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxwd %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxwd: ; ZNVER1: # BB#0: @@ -2292,7 +2292,7 @@ ; BTVER2-NEXT: vpmovsxwq (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpmovsxwq %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovsxwq: ; ZNVER1: # BB#0: @@ -2364,7 +2364,7 @@ ; BTVER2-NEXT: vpmovzxbw {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero sched: [1:0.50] ; BTVER2-NEXT: vpaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxbw: ; ZNVER1: # BB#0: @@ -2436,7 +2436,7 @@ ; BTVER2-NEXT: vpmovzxbd {{.*#+}} xmm1 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxbd: ; ZNVER1: # BB#0: @@ -2508,7 +2508,7 @@ ; BTVER2-NEXT: vpmovzxbq {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,zero,zero,zero,zero,zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxbq: ; ZNVER1: # BB#0: @@ -2580,7 +2580,7 @@ ; BTVER2-NEXT: vpmovzxdq {{.*#+}} xmm1 = mem[0],zero,mem[1],zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxdq: ; ZNVER1: # BB#0: @@ -2652,7 +2652,7 @@ ; BTVER2-NEXT: vpmovzxwd {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero sched: [1:0.50] ; BTVER2-NEXT: vpaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxwd: ; ZNVER1: # BB#0: @@ -2724,7 +2724,7 @@ ; BTVER2-NEXT: vpmovzxwq {{.*#+}} xmm1 = mem[0],zero,zero,zero,mem[1],zero,zero,zero sched: [6:1.00] ; BTVER2-NEXT: vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero sched: [1:0.50] ; BTVER2-NEXT: vpaddq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmovzxwq: ; ZNVER1: # BB#0: @@ -2787,7 +2787,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmuldq (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmuldq: ; ZNVER1: # BB#0: @@ -2849,7 +2849,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmulld %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmulld (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulld: ; ZNVER1: # BB#0: @@ -2941,7 +2941,7 @@ ; BTVER2-NEXT: setb %cl # sched: [1:0.50] ; BTVER2-NEXT: andb %al, %cl # sched: [1:0.50] ; BTVER2-NEXT: movzbl %cl, %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_ptest: ; ZNVER1: # BB#0: @@ -3016,7 +3016,7 @@ ; BTVER2-NEXT: vroundpd $7, (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vroundpd $7, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundpd: ; ZNVER1: # BB#0: @@ -3088,7 +3088,7 @@ ; BTVER2-NEXT: vroundps $7, (%rdi), %xmm1 # sched: [8:1.00] ; BTVER2-NEXT: vroundps $7, %xmm0, %xmm0 # sched: [3:1.00] ; BTVER2-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundps: ; ZNVER1: # BB#0: @@ -3161,7 +3161,7 @@ ; BTVER2-NEXT: vroundsd $7, %xmm1, %xmm0, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vroundsd $7, (%rdi), %xmm0, %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundsd: ; ZNVER1: # BB#0: @@ -3234,7 +3234,7 @@ ; BTVER2-NEXT: vroundss $7, %xmm1, %xmm0, %xmm1 # sched: [3:1.00] ; BTVER2-NEXT: vroundss $7, (%rdi), %xmm0, %xmm0 # sched: [8:1.00] ; BTVER2-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_roundss: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse42-schedule.ll =================================================================== --- test/CodeGen/X86/sse42-schedule.ll +++ test/CodeGen/X86/sse42-schedule.ll @@ -64,8 +64,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: crc32b %sil, %edi # sched: [3:1.00] ; BTVER2-NEXT: crc32b (%rdx), %edi # sched: [8:1.00] -; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: crc32_32_8: ; ZNVER1: # BB#0: @@ -134,8 +134,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: crc32w %si, %edi # sched: [3:1.00] ; BTVER2-NEXT: crc32w (%rdx), %edi # sched: [8:1.00] -; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: crc32_32_16: ; ZNVER1: # BB#0: @@ -204,8 +204,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: crc32l %esi, %edi # sched: [3:1.00] ; BTVER2-NEXT: crc32l (%rdx), %edi # sched: [8:1.00] -; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movl %edi, %eax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: crc32_32_32: ; ZNVER1: # BB#0: @@ -274,8 +274,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: crc32b %sil, %edi # sched: [3:1.00] ; BTVER2-NEXT: crc32b (%rdx), %edi # sched: [8:1.00] -; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: crc32_64_8: ; ZNVER1: # BB#0: @@ -344,8 +344,8 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: crc32q %rsi, %rdi # sched: [3:1.00] ; BTVER2-NEXT: crc32q (%rdx), %rdi # sched: [8:1.00] -; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.17] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: movq %rdi, %rax # sched: [1:0.50] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: crc32_64_64: ; ZNVER1: # BB#0: @@ -454,16 +454,16 @@ ; ; BTVER2-LABEL: test_pcmpestri: ; BTVER2: # BB#0: -; BTVER2-NEXT: movl $7, %eax # sched: [1:0.17] -; BTVER2-NEXT: movl $7, %edx # sched: [1:0.17] +; BTVER2-NEXT: movl $7, %eax # sched: [1:0.50] +; BTVER2-NEXT: movl $7, %edx # sched: [1:0.50] ; BTVER2-NEXT: vpcmpestri $7, %xmm1, %xmm0 # sched: [13:2.50] -; BTVER2-NEXT: movl $7, %eax # sched: [1:0.17] -; BTVER2-NEXT: movl $7, %edx # sched: [1:0.17] -; BTVER2-NEXT: movl %ecx, %esi # sched: [1:0.17] +; BTVER2-NEXT: movl $7, %eax # sched: [1:0.50] +; BTVER2-NEXT: movl $7, %edx # sched: [1:0.50] +; BTVER2-NEXT: movl %ecx, %esi # sched: [1:0.50] ; BTVER2-NEXT: vpcmpestri $7, (%rdi), %xmm0 # sched: [18:2.50] ; BTVER2-NEXT: # kill: %ECX %ECX %RCX ; BTVER2-NEXT: leal (%rcx,%rsi), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpestri: ; ZNVER1: # BB#0: @@ -558,13 +558,13 @@ ; ; BTVER2-LABEL: test_pcmpestrm: ; BTVER2: # BB#0: -; BTVER2-NEXT: movl $7, %eax # sched: [1:0.17] -; BTVER2-NEXT: movl $7, %edx # sched: [1:0.17] +; BTVER2-NEXT: movl $7, %eax # sched: [1:0.50] +; BTVER2-NEXT: movl $7, %edx # sched: [1:0.50] ; BTVER2-NEXT: vpcmpestrm $7, %xmm1, %xmm0 # sched: [13:2.50] -; BTVER2-NEXT: movl $7, %eax # sched: [1:0.17] -; BTVER2-NEXT: movl $7, %edx # sched: [1:0.17] +; BTVER2-NEXT: movl $7, %eax # sched: [1:0.50] +; BTVER2-NEXT: movl $7, %edx # sched: [1:0.50] ; BTVER2-NEXT: vpcmpestrm $7, (%rdi), %xmm0 # sched: [18:2.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpestrm: ; ZNVER1: # BB#0: @@ -649,11 +649,11 @@ ; BTVER2-LABEL: test_pcmpistri: ; BTVER2: # BB#0: ; BTVER2-NEXT: vpcmpistri $7, %xmm1, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: movl %ecx, %eax # sched: [1:0.17] +; BTVER2-NEXT: movl %ecx, %eax # sched: [1:0.50] ; BTVER2-NEXT: vpcmpistri $7, (%rdi), %xmm0 # sched: [11:1.00] ; BTVER2-NEXT: # kill: %ECX %ECX %RCX ; BTVER2-NEXT: leal (%rcx,%rax), %eax # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpistri: ; ZNVER1: # BB#0: @@ -718,7 +718,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpcmpistrm $7, %xmm1, %xmm0 # sched: [7:1.00] ; BTVER2-NEXT: vpcmpistrm $7, (%rdi), %xmm0 # sched: [12:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpistrm: ; ZNVER1: # BB#0: @@ -781,7 +781,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpcmpgtq %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpcmpgtq (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pcmpgtq: ; ZNVER1: # BB#0: @@ -843,7 +843,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpclmulqdq $0, %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpclmulqdq $0, (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pclmulqdq: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/sse4a-schedule.ll =================================================================== --- test/CodeGen/X86/sse4a-schedule.ll +++ test/CodeGen/X86/sse4a-schedule.ll @@ -12,7 +12,7 @@ ; BTVER2-LABEL: test_extrq: ; BTVER2: # BB#0: ; BTVER2-NEXT: extrq %xmm1, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_extrq: ; ZNVER1: # BB#0: @@ -32,7 +32,7 @@ ; BTVER2-LABEL: test_extrqi: ; BTVER2: # BB#0: ; BTVER2-NEXT: extrq $2, $3, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_extrqi: ; ZNVER1: # BB#0: @@ -52,7 +52,7 @@ ; BTVER2-LABEL: test_insertq: ; BTVER2: # BB#0: ; BTVER2-NEXT: insertq %xmm1, %xmm0 # sched: [2:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_insertq: ; ZNVER1: # BB#0: @@ -72,7 +72,7 @@ ; BTVER2-LABEL: test_insertqi: ; BTVER2: # BB#0: ; BTVER2-NEXT: insertq $6, $5, %xmm1, %xmm0 # sched: [2:2.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_insertqi: ; ZNVER1: # BB#0: @@ -92,7 +92,7 @@ ; BTVER2-LABEL: test_movntsd: ; BTVER2: # BB#0: ; BTVER2-NEXT: movntsd %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntsd: ; ZNVER1: # BB#0: @@ -112,7 +112,7 @@ ; BTVER2-LABEL: test_movntss: ; BTVER2: # BB#0: ; BTVER2-NEXT: movntss %xmm0, (%rdi) # sched: [1:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_movntss: ; ZNVER1: # BB#0: Index: test/CodeGen/X86/ssse3-schedule.ll =================================================================== --- test/CodeGen/X86/ssse3-schedule.ll +++ test/CodeGen/X86/ssse3-schedule.ll @@ -74,7 +74,7 @@ ; BTVER2-NEXT: vpabsb (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpabsb %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsb: ; ZNVER1: # BB#0: @@ -153,7 +153,7 @@ ; BTVER2-NEXT: vpabsd (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpabsd %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsd: ; ZNVER1: # BB#0: @@ -232,7 +232,7 @@ ; BTVER2-NEXT: vpabsw (%rdi), %xmm1 # sched: [6:1.00] ; BTVER2-NEXT: vpabsw %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpor %xmm1, %xmm0, %xmm0 # sched: [1:0.50] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pabsw: ; ZNVER1: # BB#0: @@ -306,7 +306,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpalignr {{.*#+}} xmm0 = xmm0[6,7,8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5] sched: [1:0.50] ; BTVER2-NEXT: vpalignr {{.*#+}} xmm0 = mem[14,15],xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13] sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_palignr: ; ZNVER1: # BB#0: @@ -372,7 +372,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphaddd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphaddd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddd: ; ZNVER1: # BB#0: @@ -439,7 +439,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphaddsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphaddsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddsw: ; ZNVER1: # BB#0: @@ -506,7 +506,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphaddw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphaddw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phaddw: ; ZNVER1: # BB#0: @@ -573,7 +573,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphsubd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphsubd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubd: ; ZNVER1: # BB#0: @@ -640,7 +640,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphsubsw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphsubsw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubsw: ; ZNVER1: # BB#0: @@ -707,7 +707,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vphsubw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vphsubw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_phsubw: ; ZNVER1: # BB#0: @@ -774,7 +774,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmaddubsw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmaddubsw: ; ZNVER1: # BB#0: @@ -842,7 +842,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 # sched: [2:1.00] ; BTVER2-NEXT: vpmulhrsw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pmulhrsw: ; ZNVER1: # BB#0: @@ -909,7 +909,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpshufb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpshufb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_pshufb: ; ZNVER1: # BB#0: @@ -980,7 +980,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsignb %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsignb (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignb: ; ZNVER1: # BB#0: @@ -1051,7 +1051,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsignd %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsignd (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignd: ; ZNVER1: # BB#0: @@ -1122,7 +1122,7 @@ ; BTVER2: # BB#0: ; BTVER2-NEXT: vpsignw %xmm1, %xmm0, %xmm0 # sched: [1:0.50] ; BTVER2-NEXT: vpsignw (%rdi), %xmm0, %xmm0 # sched: [6:1.00] -; BTVER2-NEXT: retq # sched: [4:1.00] +; BTVER2-NEXT: retq # sched: [1:1.00] ; ; ZNVER1-LABEL: test_psignw: ; ZNVER1: # BB#0: