203 lines · plain
1# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z10 -start-before=greedy %s -o - \2# RUN: | FileCheck %s3--- |4 define void @f0(ptr %ptr1, ptr %ptr2) {5 %val0 = load volatile float, ptr %ptr26 %val1 = load volatile float, ptr %ptr27 %val2 = load volatile float, ptr %ptr28 %val3 = load volatile float, ptr %ptr29 %val4 = load volatile float, ptr %ptr210 %val5 = load volatile float, ptr %ptr211 %val6 = load volatile float, ptr %ptr212 %val7 = load volatile float, ptr %ptr213 %val8 = load volatile float, ptr %ptr214 %val9 = load volatile float, ptr %ptr215 %val10 = load volatile float, ptr %ptr216 %val11 = load volatile float, ptr %ptr217 %val12 = load volatile float, ptr %ptr218 %val13 = load volatile float, ptr %ptr219 %val14 = load volatile float, ptr %ptr220 %val15 = load volatile float, ptr %ptr221 %val16 = load volatile float, ptr %ptr222 %ext0 = fpext float %val0 to double23 %ext1 = fpext float %val1 to double24 %ext2 = fpext float %val2 to double25 %ext3 = fpext float %val3 to double26 %ext4 = fpext float %val4 to double27 %ext5 = fpext float %val5 to double28 %ext6 = fpext float %val6 to double29 %ext7 = fpext float %val7 to double30 %ext8 = fpext float %val8 to double31 %ext9 = fpext float %val9 to double32 %ext10 = fpext float %val10 to double33 %ext11 = fpext float %val11 to double34 %ext12 = fpext float %val12 to double35 %ext13 = fpext float %val13 to double36 %ext14 = fpext float %val14 to double37 %ext15 = fpext float %val15 to double38 %ext16 = fpext float %val16 to double39 store volatile float %val0, ptr %ptr240 store volatile float %val1, ptr %ptr241 store volatile float %val2, ptr %ptr242 store volatile float %val3, ptr %ptr243 store volatile float %val4, ptr %ptr244 store volatile float %val5, ptr %ptr245 store volatile float %val6, ptr %ptr246 store volatile float %val7, ptr %ptr247 store volatile float %val8, ptr %ptr248 store volatile float %val9, ptr %ptr249 store volatile float %val10, ptr %ptr250 store volatile float %val11, ptr %ptr251 store volatile float %val12, ptr %ptr252 store volatile float %val13, ptr %ptr253 store volatile float %val14, ptr %ptr254 store volatile float %val15, ptr %ptr255 store volatile float %val16, ptr %ptr256 store volatile double %ext0, ptr %ptr157 store volatile double %ext1, ptr %ptr158 store volatile double %ext2, ptr %ptr159 store volatile double %ext3, ptr %ptr160 store volatile double %ext4, ptr %ptr161 store volatile double %ext5, ptr %ptr162 store volatile double %ext6, ptr %ptr163 store volatile double %ext7, ptr %ptr164 store volatile double %ext8, ptr %ptr165 store volatile double %ext9, ptr %ptr166 store volatile double %ext10, ptr %ptr167 store volatile double %ext11, ptr %ptr168 store volatile double %ext12, ptr %ptr169 store volatile double %ext13, ptr %ptr170 store volatile double %ext14, ptr %ptr171 store volatile double %ext15, ptr %ptr172 store volatile double %ext16, ptr %ptr173 ret void74 }75 76...77 78# CHECK-LABEL: f0:79# CHECK: ldeb {{%f[0-9]+}}, 16{{[04]}}(%r15)80# CHECK: br %r1481 82---83name: f084alignment: 485tracksRegLiveness: true86registers: 87 - { id: 0, class: addr64bit }88 - { id: 1, class: addr64bit }89 - { id: 2, class: fp32bit }90 - { id: 3, class: fp32bit }91 - { id: 4, class: fp32bit }92 - { id: 5, class: fp32bit }93 - { id: 6, class: fp32bit }94 - { id: 7, class: fp32bit }95 - { id: 8, class: fp32bit }96 - { id: 9, class: fp32bit }97 - { id: 10, class: fp32bit }98 - { id: 11, class: fp32bit }99 - { id: 12, class: fp32bit }100 - { id: 13, class: fp32bit }101 - { id: 14, class: fp32bit }102 - { id: 15, class: fp32bit }103 - { id: 16, class: fp32bit }104 - { id: 17, class: fp32bit }105 - { id: 18, class: fp32bit }106 - { id: 19, class: fp64bit }107 - { id: 20, class: fp64bit }108 - { id: 21, class: fp64bit }109 - { id: 22, class: fp64bit }110 - { id: 23, class: fp64bit }111 - { id: 24, class: fp64bit }112 - { id: 25, class: fp64bit }113 - { id: 26, class: fp64bit }114 - { id: 27, class: fp64bit }115 - { id: 28, class: fp64bit }116 - { id: 29, class: fp64bit }117 - { id: 30, class: fp64bit }118 - { id: 31, class: fp64bit }119 - { id: 32, class: fp64bit }120 - { id: 33, class: fp64bit }121 - { id: 34, class: fp64bit }122 - { id: 35, class: fp64bit }123liveins: 124 - { reg: '$r2d', virtual-reg: '%0' }125 - { reg: '$r3d', virtual-reg: '%1' }126body: |127 bb.0 (%ir-block.0):128 liveins: $r2d, $r3d129 130 %1 = COPY $r3d131 %0 = COPY $r2d132 %2 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)133 %3 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)134 %4 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)135 %5 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)136 %6 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)137 %7 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)138 %8 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)139 %9 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)140 %10 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)141 %11 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)142 %12 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)143 %13 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)144 %14 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)145 %15 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)146 %16 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)147 %17 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)148 %18 = LE %1, 0, $noreg :: (volatile load (s32) from %ir.ptr2)149 STE %2, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)150 STE %3, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)151 STE %4, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)152 STE %5, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)153 STE %6, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)154 STE %7, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)155 STE %8, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)156 STE %9, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)157 STE %10, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)158 STE %11, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)159 STE %12, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)160 STE %13, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)161 STE %14, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)162 STE %15, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)163 STE %16, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)164 STE %17, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)165 STE %18, %1, 0, $noreg :: (volatile store (s32) into %ir.ptr2)166 %19 = LDEBR %2, implicit $fpc167 STD %19, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)168 %20 = LDEBR %3, implicit $fpc169 STD %20, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)170 %21 = LDEBR %4, implicit $fpc171 STD %21, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)172 %22 = LDEBR %5, implicit $fpc173 STD %22, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)174 %23 = LDEBR %6, implicit $fpc175 STD %23, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)176 %24 = LDEBR %7, implicit $fpc177 STD %24, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)178 %25 = LDEBR %8, implicit $fpc179 STD %25, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)180 %26 = LDEBR %9, implicit $fpc181 STD %26, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)182 %27 = LDEBR %10, implicit $fpc183 STD %27, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)184 %28 = LDEBR %11, implicit $fpc185 STD %28, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)186 %29 = LDEBR %12, implicit $fpc187 STD %29, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)188 %30 = LDEBR %13, implicit $fpc189 STD %30, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)190 %31 = LDEBR %14, implicit $fpc191 STD %31, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)192 %32 = LDEBR %15, implicit $fpc193 STD %32, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)194 %33 = LDEBR %16, implicit $fpc195 STD %33, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)196 %34 = LDEBR %17, implicit $fpc197 STD %34, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)198 %35 = LDEBR %18, implicit $fpc199 STD %35, %0, 0, $noreg :: (volatile store (s64) into %ir.ptr1)200 Return201 202...203