Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movl > %t
      2 ; RUN: not grep "r[abcd]x" %t
      3 ; RUN: not grep "r[ds]i" %t
      4 ; RUN: not grep "r[bs]p" %t
      5 
      6 	%struct.BITMAP = type { i16, i16, i32, i32, i32, i32, i32, i32, i8*, i8* }
      7 	%struct.BltData = type { float, float, float, float }
      8 	%struct.BltDepth = type { i32, i8**, i32, %struct.BITMAP* (%struct.BltDepth**, %struct.BITMAP*, i32, i32, float*, float, i32)*, i32 (%struct.BltDepth**, %struct.BltOp*)*, i32 (%struct.BltDepth**, %struct.BltOp*, %struct.BltImg*)*, i32 (%struct.BltDepth**, %struct.BltOp*, %struct.BltSh*)*, [28 x [2 x [2 x i32]]]*, %struct.BltData* }
      9 	%struct.BltImg = type { i32, i8, i8, i8, float, float*, float*, i32, i32, float*, i32 (i8*, i8*, i8**, i32*, i8**, i32*)*, i8* }
     10 	%struct.BltOp = type { i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i8* }
     11 	%struct.BltSh = type { i8, i8, i8, i8, float, float*, float*, float*, float*, i32, i32, float*, float*, float* }
     12 
     13 define void @t(%struct.BltDepth* %depth, %struct.BltOp* %bop, i32 %mode) nounwind  {
     14 entry:
     15 	switch i32 %mode, label %return [
     16 		 i32 1, label %bb2898.us
     17 		 i32 18, label %bb13086.preheader
     18 	]
     19 
     20 bb13086.preheader:		; preds = %entry
     21 	%tmp13098 = icmp eq i32 0, 0		; <i1> [#uses=1]
     22 	%tmp13238 = icmp eq i32 0, 0		; <i1> [#uses=1]
     23 	br label %bb13088
     24 
     25 bb2898.us:		; preds = %bb2898.us, %entry
     26 	br label %bb2898.us
     27 
     28 bb13088:		; preds = %bb13572, %bb13567, %bb13107, %bb13086.preheader
     29 	br i1 %tmp13098, label %bb13107, label %bb13101
     30 
     31 bb13101:		; preds = %bb13088
     32 	br label %bb13107
     33 
     34 bb13107:		; preds = %bb13101, %bb13088
     35 	%iftmp.684.0 = phi i32 [ 0, %bb13101 ], [ 65535, %bb13088 ]		; <i32> [#uses=2]
     36 	%tmp13111 = load i64, i64* null, align 8		; <i64> [#uses=3]
     37 	%tmp13116 = lshr i64 %tmp13111, 16		; <i64> [#uses=1]
     38 	%tmp1311613117 = trunc i64 %tmp13116 to i32		; <i32> [#uses=1]
     39 	%tmp13118 = and i32 %tmp1311613117, 65535		; <i32> [#uses=1]
     40 	%tmp13120 = lshr i64 %tmp13111, 32		; <i64> [#uses=1]
     41 	%tmp1312013121 = trunc i64 %tmp13120 to i32		; <i32> [#uses=1]
     42 	%tmp13122 = and i32 %tmp1312013121, 65535		; <i32> [#uses=2]
     43 	%tmp13124 = lshr i64 %tmp13111, 48		; <i64> [#uses=1]
     44 	%tmp1312413125 = trunc i64 %tmp13124 to i32		; <i32> [#uses=2]
     45 	%tmp1314013141not = xor i16 0, -1		; <i16> [#uses=1]
     46 	%tmp1314013141not13142 = zext i16 %tmp1314013141not to i32		; <i32> [#uses=3]
     47 	%tmp13151 = mul i32 %tmp13122, %tmp1314013141not13142		; <i32> [#uses=1]
     48 	%tmp13154 = mul i32 %tmp1312413125, %tmp1314013141not13142		; <i32> [#uses=1]
     49 	%tmp13157 = mul i32 %iftmp.684.0, %tmp1314013141not13142		; <i32> [#uses=1]
     50 	%tmp13171 = add i32 %tmp13151, 1		; <i32> [#uses=1]
     51 	%tmp13172 = add i32 %tmp13171, 0		; <i32> [#uses=1]
     52 	%tmp13176 = add i32 %tmp13154, 1		; <i32> [#uses=1]
     53 	%tmp13177 = add i32 %tmp13176, 0		; <i32> [#uses=1]
     54 	%tmp13181 = add i32 %tmp13157, 1		; <i32> [#uses=1]
     55 	%tmp13182 = add i32 %tmp13181, 0		; <i32> [#uses=1]
     56 	%tmp13188 = lshr i32 %tmp13172, 16		; <i32> [#uses=1]
     57 	%tmp13190 = lshr i32 %tmp13177, 16		; <i32> [#uses=1]
     58 	%tmp13192 = lshr i32 %tmp13182, 16		; <i32> [#uses=1]
     59 	%tmp13198 = sub i32 %tmp13118, 0		; <i32> [#uses=1]
     60 	%tmp13201 = sub i32 %tmp13122, %tmp13188		; <i32> [#uses=1]
     61 	%tmp13204 = sub i32 %tmp1312413125, %tmp13190		; <i32> [#uses=1]
     62 	%tmp13207 = sub i32 %iftmp.684.0, %tmp13192		; <i32> [#uses=1]
     63 	%tmp1320813209 = zext i32 %tmp13204 to i64		; <i64> [#uses=1]
     64 	%tmp13211 = shl i64 %tmp1320813209, 48		; <i64> [#uses=1]
     65 	%tmp1321213213 = zext i32 %tmp13201 to i64		; <i64> [#uses=1]
     66 	%tmp13214 = shl i64 %tmp1321213213, 32		; <i64> [#uses=1]
     67 	%tmp13215 = and i64 %tmp13214, 281470681743360		; <i64> [#uses=1]
     68 	%tmp1321713218 = zext i32 %tmp13198 to i64		; <i64> [#uses=1]
     69 	%tmp13219 = shl i64 %tmp1321713218, 16		; <i64> [#uses=1]
     70 	%tmp13220 = and i64 %tmp13219, 4294901760		; <i64> [#uses=1]
     71 	%tmp13216 = or i64 %tmp13211, 0		; <i64> [#uses=1]
     72 	%tmp13221 = or i64 %tmp13216, %tmp13215		; <i64> [#uses=1]
     73 	%tmp13225 = or i64 %tmp13221, %tmp13220		; <i64> [#uses=4]
     74 	%tmp1322713228 = trunc i32 %tmp13207 to i16		; <i16> [#uses=4]
     75 	%tmp13233 = icmp eq i16 %tmp1322713228, 0		; <i1> [#uses=1]
     76 	br i1 %tmp13233, label %bb13088, label %bb13236
     77 
     78 bb13236:		; preds = %bb13107
     79 	br i1 false, label %bb13567, label %bb13252
     80 
     81 bb13252:		; preds = %bb13236
     82 	%tmp1329013291 = zext i16 %tmp1322713228 to i64		; <i64> [#uses=8]
     83 	%tmp13296 = lshr i64 %tmp13225, 16		; <i64> [#uses=1]
     84 	%tmp13297 = and i64 %tmp13296, 65535		; <i64> [#uses=1]
     85 	%tmp13299 = lshr i64 %tmp13225, 32		; <i64> [#uses=1]
     86 	%tmp13300 = and i64 %tmp13299, 65535		; <i64> [#uses=1]
     87 	%tmp13302 = lshr i64 %tmp13225, 48		; <i64> [#uses=1]
     88 	%tmp13306 = sub i64 %tmp1329013291, 0		; <i64> [#uses=0]
     89 	%tmp13309 = sub i64 %tmp1329013291, %tmp13297		; <i64> [#uses=1]
     90 	%tmp13312 = sub i64 %tmp1329013291, %tmp13300		; <i64> [#uses=1]
     91 	%tmp13315 = sub i64 %tmp1329013291, %tmp13302		; <i64> [#uses=1]
     92 	%tmp13318 = mul i64 %tmp1329013291, %tmp1329013291		; <i64> [#uses=1]
     93 	br i1 false, label %bb13339, label %bb13324
     94 
     95 bb13324:		; preds = %bb13252
     96 	br i1 false, label %bb13339, label %bb13330
     97 
     98 bb13330:		; preds = %bb13324
     99 	%tmp13337 = sdiv i64 0, 0		; <i64> [#uses=1]
    100 	br label %bb13339
    101 
    102 bb13339:		; preds = %bb13330, %bb13324, %bb13252
    103 	%r0120.0 = phi i64 [ %tmp13337, %bb13330 ], [ 0, %bb13252 ], [ 4294836225, %bb13324 ]		; <i64> [#uses=1]
    104 	br i1 false, label %bb13360, label %bb13345
    105 
    106 bb13345:		; preds = %bb13339
    107 	br i1 false, label %bb13360, label %bb13351
    108 
    109 bb13351:		; preds = %bb13345
    110 	%tmp13354 = mul i64 0, %tmp13318		; <i64> [#uses=1]
    111 	%tmp13357 = sub i64 %tmp1329013291, %tmp13309		; <i64> [#uses=1]
    112 	%tmp13358 = sdiv i64 %tmp13354, %tmp13357		; <i64> [#uses=1]
    113 	br label %bb13360
    114 
    115 bb13360:		; preds = %bb13351, %bb13345, %bb13339
    116 	%r1121.0 = phi i64 [ %tmp13358, %bb13351 ], [ 0, %bb13339 ], [ 4294836225, %bb13345 ]		; <i64> [#uses=1]
    117 	br i1 false, label %bb13402, label %bb13387
    118 
    119 bb13387:		; preds = %bb13360
    120 	br label %bb13402
    121 
    122 bb13402:		; preds = %bb13387, %bb13360
    123 	%r3123.0 = phi i64 [ 0, %bb13360 ], [ 4294836225, %bb13387 ]		; <i64> [#uses=1]
    124 	%tmp13404 = icmp eq i16 %tmp1322713228, -1		; <i1> [#uses=1]
    125 	br i1 %tmp13404, label %bb13435, label %bb13407
    126 
    127 bb13407:		; preds = %bb13402
    128 	br label %bb13435
    129 
    130 bb13435:		; preds = %bb13407, %bb13402
    131 	%r0120.1 = phi i64 [ 0, %bb13407 ], [ %r0120.0, %bb13402 ]		; <i64> [#uses=0]
    132 	%r1121.1 = phi i64 [ 0, %bb13407 ], [ %r1121.0, %bb13402 ]		; <i64> [#uses=0]
    133 	%r3123.1 = phi i64 [ 0, %bb13407 ], [ %r3123.0, %bb13402 ]		; <i64> [#uses=0]
    134 	%tmp13450 = mul i64 0, %tmp13312		; <i64> [#uses=0]
    135 	%tmp13455 = mul i64 0, %tmp13315		; <i64> [#uses=0]
    136 	%tmp13461 = add i64 0, %tmp1329013291		; <i64> [#uses=1]
    137 	%tmp13462 = mul i64 %tmp13461, 65535		; <i64> [#uses=1]
    138 	%tmp13466 = sub i64 %tmp13462, 0		; <i64> [#uses=1]
    139 	%tmp13526 = add i64 %tmp13466, 1		; <i64> [#uses=1]
    140 	%tmp13527 = add i64 %tmp13526, 0		; <i64> [#uses=1]
    141 	%tmp13528 = ashr i64 %tmp13527, 16		; <i64> [#uses=4]
    142 	%tmp13536 = sub i64 %tmp13528, 0		; <i64> [#uses=1]
    143 	%tmp13537 = shl i64 %tmp13536, 32		; <i64> [#uses=1]
    144 	%tmp13538 = and i64 %tmp13537, 281470681743360		; <i64> [#uses=1]
    145 	%tmp13542 = sub i64 %tmp13528, 0		; <i64> [#uses=1]
    146 	%tmp13543 = shl i64 %tmp13542, 16		; <i64> [#uses=1]
    147 	%tmp13544 = and i64 %tmp13543, 4294901760		; <i64> [#uses=1]
    148 	%tmp13548 = sub i64 %tmp13528, 0		; <i64> [#uses=1]
    149 	%tmp13549 = and i64 %tmp13548, 65535		; <i64> [#uses=1]
    150 	%tmp13539 = or i64 %tmp13538, 0		; <i64> [#uses=1]
    151 	%tmp13545 = or i64 %tmp13539, %tmp13549		; <i64> [#uses=1]
    152 	%tmp13550 = or i64 %tmp13545, %tmp13544		; <i64> [#uses=1]
    153 	%tmp1355213553 = trunc i64 %tmp13528 to i16		; <i16> [#uses=1]
    154 	br label %bb13567
    155 
    156 bb13567:		; preds = %bb13435, %bb13236
    157 	%tsp1040.0.0 = phi i64 [ %tmp13550, %bb13435 ], [ %tmp13225, %bb13236 ]		; <i64> [#uses=0]
    158 	%tsp1040.1.0 = phi i16 [ %tmp1355213553, %bb13435 ], [ %tmp1322713228, %bb13236 ]		; <i16> [#uses=1]
    159 	br i1 %tmp13238, label %bb13088, label %bb13572
    160 
    161 bb13572:		; preds = %bb13567
    162 	store i16 %tsp1040.1.0, i16* null, align 2
    163 	br label %bb13088
    164 
    165 return:		; preds = %entry
    166 	ret void
    167 }
    168