1# RUN: llc -mtriple=arm64-apple-ios11.0.0 -o - -run-pass mir-canonicalizer %s | FileCheck %s 2# These Idempotent instructions are sorted alphabetically (based on after the '=') 3# CHECK: %namedVReg4352:gpr64 = MOVi64imm 4617315517961601024 4# CHECK: %namedVReg4353:gpr32 = MOVi32imm 408 5# CHECK: %namedVReg4354:gpr32 = MOVi32imm 408 6# CHECK: %namedVReg4355:gpr64all = IMPLICIT_DEF 7# CHECK: %namedVReg4356:fpr64 = FMOVDi 20 8# CHECK: %namedVReg4357:fpr64 = FMOVDi 112 9... 10--- 11name: Proc8 12stack: 13 - { id: 0, type: default, offset: 0, size: 4, alignment: 4, 14 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 15 local-offset: -4, debug-info-variable: '', debug-info-expression: '', 16 debug-info-location: '' } 17 - { id: 1, type: default, offset: 0, size: 8, alignment: 8, 18 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 19 local-offset: -16, debug-info-variable: '', debug-info-expression: '', 20 debug-info-location: '' } 21 - { id: 2, type: default, offset: 0, size: 8, alignment: 8, 22 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 23 local-offset: -24, debug-info-variable: '', debug-info-expression: '', 24 debug-info-location: '' } 25 - { id: 3, type: default, offset: 0, size: 8, alignment: 8, 26 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 27 local-offset: -32, debug-info-variable: '', debug-info-expression: '', 28 debug-info-location: '' } 29 - { id: 4, type: default, offset: 0, size: 8, alignment: 8, 30 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 31 local-offset: -40, debug-info-variable: '', debug-info-expression: '', 32 debug-info-location: '' } 33 - { id: 5, type: default, offset: 0, size: 8, alignment: 8, 34 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 35 local-offset: -48, debug-info-variable: '', debug-info-expression: '', 36 debug-info-location: '' } 37 - { id: 6, type: default, offset: 0, size: 8, alignment: 8, 38 stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 39 local-offset: -56, debug-info-variable: '', debug-info-expression: '', 40 debug-info-location: '' } 41constants: 42body: | 43 bb.0: 44 liveins: $x0, $x1, $d0, $d1 45 46 %3:fpr64 = COPY $d1 47 %2:fpr64 = COPY $d0 48 %1:gpr64 = COPY $x1 49 %0:gpr64common = COPY $x0 50 STRXui %0, %stack.1, 0 :: (store 8) 51 STRXui %1, %stack.2, 0 :: (store 8) 52 STRDui %2, %stack.3, 0 :: (store 8) 53 STRDui %3, %stack.4, 0 :: (store 8) 54 55 %4:fpr64 = FMOVDi 20 56 %5:fpr64 = FADDDrr %2, killed %4 57 STRDui %5, %stack.5, 0 :: (store 8) 58 59 %6:gpr32 = FCVTZSUWDr %5 60 STRDroW %3, %0, killed %6, 1, 1 61 62 %7:gpr64common = LDRXui %stack.1, 0 :: (dereferenceable load 8) 63 %8:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 64 65 %9:gpr32common = FCVTZSUWDr killed %8 66 %10:fpr64 = LDRDroW %7, %9, 1, 1 67 68 %11:gpr32common = ADDWri %9, 1, 0 69 STRDroW killed %10, %7, killed %11, 1, 1 70 71 %12:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 72 %13:gpr64common = LDRXui %stack.1, 0 :: (dereferenceable load 8) 73 74 %14:gpr32common = FCVTZSUWDr %12 75 %15:gpr32common = ADDWri killed %14, 30, 0 76 STRDroW %12, killed %13, killed %15, 1, 1 77 78 %16:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 79 STRDui killed %16, %stack.6, 0 :: (store 8) 80 81 %19:fpr64 = FMOVDi 112 82 %46:gpr32 = MOVi32imm 408 83 %43:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 84 %44:gpr64 = LDRXui %stack.2, 0 :: (dereferenceable load 8) 85 86 %45:gpr32 = FCVTZSUWDr %43 87 %47:gpr64common = SMADDLrrr killed %45, %46, killed %44 88 %48:fpr64 = LDRDui %stack.6, 0 :: (dereferenceable load 8) 89 90 %49:gpr32 = FCVTZSUWDr killed %48 91 STRDroW %43, killed %47, killed %49, 1, 1 92 93 %21:gpr64 = LDRXui %stack.2, 0 :: (dereferenceable load 8) 94 %22:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 95 96 %23:gpr32 = FCVTZSUWDr killed %22 97 %24:gpr32 = MOVi32imm 408 98 %25:gpr64common = SMADDLrrr %23, %24, killed %21 99 %26:gpr64sp = ADDXrx killed %25, %23, 51 100 %27:fpr64 = LDURDi %26, -8 101 %29:fpr64 = FADDDrr killed %27, %19 102 STURDi killed %29, %26, -8 103 104 %30:gpr64common = LDRXui %stack.1, 0 :: (dereferenceable load 8) 105 %31:fpr64 = LDRDui %stack.5, 0 :: (dereferenceable load 8) 106 107 %32:gpr32common = FCVTZSUWDr killed %31 108 %34:gpr64all = IMPLICIT_DEF 109 %33:gpr64 = INSERT_SUBREG %34, %32, %subreg.sub_32 110 %35:gpr64 = SBFMXri killed %33, 61, 31 111 %36:fpr64 = LDRDroX killed %30, %35, 0, 0 112 %37:gpr64 = LDRXui %stack.2, 0 :: (dereferenceable load 8) 113 114 %38:gpr32common = ADDWri %32, 20, 0 115 %39:gpr64common = SMADDLrrr killed %38, %24, killed %37 116 STRDroX killed %36, killed %39, %35, 0, 0 117 118 %40:gpr64 = MOVi64imm 4617315517961601024 119 120 %42:gpr32 = LDRWui %stack.0, 0 :: (dereferenceable load 8) 121 $w0 = COPY %42 122 RET_ReallyLR implicit $w0 123 124... 125