1# RUN: llc -mtriple=x86_64-- -run-pass=regallocfast -o - %s | FileCheck %s 2# RUN: llc -mtriple=x86_64-- -passes=regallocfast -o - %s | FileCheck %s 3 4# If the tied use is undef value, fastregalloc should free the def register. 5# There is no reload needed for the undef value. 6... 7--- 8name: foo 9alignment: 16 10tracksRegLiveness: true 11registers: 12 - { id: 0, class: vr128 } 13frameInfo: 14 maxAlignment: 16 15stack: 16 - { id: 0, size: 64, alignment: 16 } 17 - { id: 1, size: 16, alignment: 16 } 18machineFunctionInfo: {} 19body: | 20 bb.0.entry: 21 ; CHECK-LABEL: bb.0.entry 22 ; CHECK-NEXT: renamable $xmm0 = PXORrr undef renamable $xmm0, undef renamable $xmm0 23 ; CHECK-NEXT: MOVAPSmr %stack.1, 1, $noreg, 0, $noreg, renamable $xmm0 24 ; CHECK-NEXT: MOVAPSmr %stack.0, 1, $noreg, 0, $noreg, renamable $xmm0 25 ; CHECK-NEXT: MOVAPSmr %stack.0, 1, $noreg, 16, $noreg, renamable $xmm0 26 ; CHECK-NEXT: MOVAPSmr %stack.0, 1, $noreg, 32, $noreg, renamable $xmm0 27 ; CHECK-NEXT: MOVAPSmr %stack.0, 1, $noreg, 48, $noreg, killed renamable $xmm0 28 29 %0:vr128 = PXORrr undef %0, undef %0 30 MOVAPSmr %stack.1, 1, $noreg, 0, $noreg, %0 31 MOVAPSmr %stack.0, 1, $noreg, 0, $noreg, %0 32 MOVAPSmr %stack.0, 1, $noreg, 16, $noreg, %0 33 MOVAPSmr %stack.0, 1, $noreg, 32, $noreg, %0 34 MOVAPSmr %stack.0, 1, $noreg, 48, $noreg, killed %0 35 RET 0 36 37... 38