mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	Fixes PR 2030. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47141 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			465 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			465 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
| ; RUN: llvm-as < %s | opt -loop-index-split -disable-output
 | |
| ; PR 2030
 | |
| 	%struct.FULL = type { i32, i32, [1000 x float*] }
 | |
| 
 | |
| define i32 @matgen(%struct.FULL* %a, float** %x, float** %b, float** %bt, i32** %ipvt, i32 %test_case, i32 %scale) {
 | |
| entry:
 | |
| 	br i1 false, label %bb, label %entry.bb30_crit_edge
 | |
| 
 | |
| entry.bb30_crit_edge:		; preds = %entry
 | |
| 	br label %bb30
 | |
| 
 | |
| bb:		; preds = %entry
 | |
| 	br label %bb14
 | |
| 
 | |
| bb6:		; preds = %bb14
 | |
| 	br label %bb14
 | |
| 
 | |
| bb14:		; preds = %bb6, %bb
 | |
| 	br i1 false, label %bb6, label %bb22
 | |
| 
 | |
| bb22:		; preds = %bb14
 | |
| 	br label %bb30
 | |
| 
 | |
| bb30:		; preds = %bb22, %entry.bb30_crit_edge
 | |
| 	switch i32 %test_case, label %bb648 [
 | |
| 		 i32 1, label %bb30.bb32_crit_edge
 | |
| 		 i32 2, label %bb30.bb32_crit_edge1
 | |
| 		 i32 3, label %bb30.bb32_crit_edge2
 | |
| 		 i32 4, label %bb30.bb108_crit_edge
 | |
| 		 i32 5, label %bb30.bb108_crit_edge3
 | |
| 		 i32 6, label %bb30.bb142_crit_edge
 | |
| 		 i32 7, label %bb30.bb142_crit_edge4
 | |
| 		 i32 8, label %bb30.bb142_crit_edge5
 | |
| 		 i32 9, label %bb234
 | |
| 		 i32 10, label %bb292
 | |
| 		 i32 11, label %bb353
 | |
| 		 i32 12, label %bb419
 | |
| 		 i32 13, label %bb485
 | |
| 		 i32 14, label %bb567
 | |
| 	]
 | |
| 
 | |
| bb30.bb142_crit_edge5:		; preds = %bb30
 | |
| 	br label %bb142
 | |
| 
 | |
| bb30.bb142_crit_edge4:		; preds = %bb30
 | |
| 	br label %bb142
 | |
| 
 | |
| bb30.bb142_crit_edge:		; preds = %bb30
 | |
| 	br label %bb142
 | |
| 
 | |
| bb30.bb108_crit_edge3:		; preds = %bb30
 | |
| 	br label %bb108
 | |
| 
 | |
| bb30.bb108_crit_edge:		; preds = %bb30
 | |
| 	br label %bb108
 | |
| 
 | |
| bb30.bb32_crit_edge2:		; preds = %bb30
 | |
| 	br label %bb32
 | |
| 
 | |
| bb30.bb32_crit_edge1:		; preds = %bb30
 | |
| 	br label %bb32
 | |
| 
 | |
| bb30.bb32_crit_edge:		; preds = %bb30
 | |
| 	br label %bb32
 | |
| 
 | |
| bb32:		; preds = %bb30.bb32_crit_edge, %bb30.bb32_crit_edge1, %bb30.bb32_crit_edge2
 | |
| 	br i1 false, label %bb53, label %bb52
 | |
| 
 | |
| bb52:		; preds = %bb32
 | |
| 	br label %bb739
 | |
| 
 | |
| bb53:		; preds = %bb32
 | |
| 	br label %bb101
 | |
| 
 | |
| bb58:		; preds = %bb101
 | |
| 	br label %bb92
 | |
| 
 | |
| bb64:		; preds = %bb92
 | |
| 	br i1 false, label %bb64.bb87_crit_edge, label %bb72
 | |
| 
 | |
| bb64.bb87_crit_edge:		; preds = %bb64
 | |
| 	br label %bb87
 | |
| 
 | |
| bb72:		; preds = %bb64
 | |
| 	br i1 false, label %bb72.bb87_crit_edge, label %bb79
 | |
| 
 | |
| bb72.bb87_crit_edge:		; preds = %bb72
 | |
| 	br label %bb87
 | |
| 
 | |
| bb79:		; preds = %bb72
 | |
| 	br label %bb87
 | |
| 
 | |
| bb87:		; preds = %bb79, %bb72.bb87_crit_edge, %bb64.bb87_crit_edge
 | |
| 	br label %bb92
 | |
| 
 | |
| bb92:		; preds = %bb87, %bb58
 | |
| 	br i1 false, label %bb64, label %bb98
 | |
| 
 | |
| bb98:		; preds = %bb92
 | |
| 	br label %bb101
 | |
| 
 | |
| bb101:		; preds = %bb98, %bb53
 | |
| 	br i1 false, label %bb58, label %bb107
 | |
| 
 | |
| bb107:		; preds = %bb101
 | |
| 	br label %bb651
 | |
| 
 | |
| bb108:		; preds = %bb30.bb108_crit_edge, %bb30.bb108_crit_edge3
 | |
| 	br i1 false, label %bb125, label %bb124
 | |
| 
 | |
| bb124:		; preds = %bb108
 | |
| 	br label %bb739
 | |
| 
 | |
| bb125:		; preds = %bb108
 | |
| 	br i1 false, label %bb138, label %bb139
 | |
| 
 | |
| bb138:		; preds = %bb125
 | |
| 	br label %bb140
 | |
| 
 | |
| bb139:		; preds = %bb125
 | |
| 	br label %bb140
 | |
| 
 | |
| bb140:		; preds = %bb139, %bb138
 | |
| 	br label %bb651
 | |
| 
 | |
| bb142:		; preds = %bb30.bb142_crit_edge, %bb30.bb142_crit_edge4, %bb30.bb142_crit_edge5
 | |
| 	br i1 false, label %bb161, label %bb160
 | |
| 
 | |
| bb160:		; preds = %bb142
 | |
| 	br label %bb739
 | |
| 
 | |
| bb161:		; preds = %bb142
 | |
| 	br i1 false, label %bb170, label %bb161.bb171_crit_edge
 | |
| 
 | |
| bb161.bb171_crit_edge:		; preds = %bb161
 | |
| 	br label %bb171
 | |
| 
 | |
| bb170:		; preds = %bb161
 | |
| 	br label %bb171
 | |
| 
 | |
| bb171:		; preds = %bb170, %bb161.bb171_crit_edge
 | |
| 	br i1 false, label %bb176, label %bb171.bb177_crit_edge
 | |
| 
 | |
| bb171.bb177_crit_edge:		; preds = %bb171
 | |
| 	br label %bb177
 | |
| 
 | |
| bb176:		; preds = %bb171
 | |
| 	br label %bb177
 | |
| 
 | |
| bb177:		; preds = %bb176, %bb171.bb177_crit_edge
 | |
| 	br label %bb227
 | |
| 
 | |
| bb178:		; preds = %bb227
 | |
| 	br label %bb218
 | |
| 
 | |
| bb184:		; preds = %bb218
 | |
| 	br i1 false, label %bb191, label %bb193
 | |
| 
 | |
| bb191:		; preds = %bb184
 | |
| 	br label %bb213
 | |
| 
 | |
| bb193:		; preds = %bb184
 | |
| 	br i1 false, label %bb200, label %bb203
 | |
| 
 | |
| bb200:		; preds = %bb193
 | |
| 	br label %bb213
 | |
| 
 | |
| bb203:		; preds = %bb193
 | |
| 	br i1 false, label %bb210, label %bb203.bb213_crit_edge
 | |
| 
 | |
| bb203.bb213_crit_edge:		; preds = %bb203
 | |
| 	br label %bb213
 | |
| 
 | |
| bb210:		; preds = %bb203
 | |
| 	br label %bb213
 | |
| 
 | |
| bb213:		; preds = %bb210, %bb203.bb213_crit_edge, %bb200, %bb191
 | |
| 	br label %bb218
 | |
| 
 | |
| bb218:		; preds = %bb213, %bb178
 | |
| 	br i1 false, label %bb184, label %bb224
 | |
| 
 | |
| bb224:		; preds = %bb218
 | |
| 	br label %bb227
 | |
| 
 | |
| bb227:		; preds = %bb224, %bb177
 | |
| 	br i1 false, label %bb178, label %bb233
 | |
| 
 | |
| bb233:		; preds = %bb227
 | |
| 	br label %bb651
 | |
| 
 | |
| bb234:		; preds = %bb30
 | |
| 	br i1 false, label %bb253, label %bb252
 | |
| 
 | |
| bb252:		; preds = %bb234
 | |
| 	br label %bb739
 | |
| 
 | |
| bb253:		; preds = %bb234
 | |
| 	br label %bb285
 | |
| 
 | |
| bb258:		; preds = %bb285
 | |
| 	br label %bb276
 | |
| 
 | |
| bb264:		; preds = %bb276
 | |
| 	br label %bb276
 | |
| 
 | |
| bb276:		; preds = %bb264, %bb258
 | |
| 	br i1 false, label %bb264, label %bb282
 | |
| 
 | |
| bb282:		; preds = %bb276
 | |
| 	br label %bb285
 | |
| 
 | |
| bb285:		; preds = %bb282, %bb253
 | |
| 	br i1 false, label %bb258, label %bb291
 | |
| 
 | |
| bb291:		; preds = %bb285
 | |
| 	br label %bb651
 | |
| 
 | |
| bb292:		; preds = %bb30
 | |
| 	br i1 false, label %bb311, label %bb310
 | |
| 
 | |
| bb310:		; preds = %bb292
 | |
| 	br label %bb739
 | |
| 
 | |
| bb311:		; preds = %bb292
 | |
| 	br label %bb346
 | |
| 
 | |
| bb316:		; preds = %bb346
 | |
| 	br label %bb337
 | |
| 
 | |
| bb322:		; preds = %bb337
 | |
| 	br label %bb337
 | |
| 
 | |
| bb337:		; preds = %bb322, %bb316
 | |
| 	br i1 false, label %bb322, label %bb343
 | |
| 
 | |
| bb343:		; preds = %bb337
 | |
| 	br label %bb346
 | |
| 
 | |
| bb346:		; preds = %bb343, %bb311
 | |
| 	br i1 false, label %bb316, label %bb352
 | |
| 
 | |
| bb352:		; preds = %bb346
 | |
| 	br label %bb651
 | |
| 
 | |
| bb353:		; preds = %bb30
 | |
| 	br i1 false, label %bb372, label %bb371
 | |
| 
 | |
| bb371:		; preds = %bb353
 | |
| 	br label %bb739
 | |
| 
 | |
| bb372:		; preds = %bb353
 | |
| 	br label %bb412
 | |
| 
 | |
| bb377:		; preds = %bb412
 | |
| 	br label %bb403
 | |
| 
 | |
| bb383:		; preds = %bb403
 | |
| 	br i1 false, label %bb395, label %bb389
 | |
| 
 | |
| bb389:		; preds = %bb383
 | |
| 	br label %bb396
 | |
| 
 | |
| bb395:		; preds = %bb383
 | |
| 	br label %bb396
 | |
| 
 | |
| bb396:		; preds = %bb395, %bb389
 | |
| 	br label %bb403
 | |
| 
 | |
| bb403:		; preds = %bb396, %bb377
 | |
| 	br i1 false, label %bb383, label %bb409
 | |
| 
 | |
| bb409:		; preds = %bb403
 | |
| 	br label %bb412
 | |
| 
 | |
| bb412:		; preds = %bb409, %bb372
 | |
| 	br i1 false, label %bb377, label %bb418
 | |
| 
 | |
| bb418:		; preds = %bb412
 | |
| 	br label %bb651
 | |
| 
 | |
| bb419:		; preds = %bb30
 | |
| 	br i1 false, label %bb438, label %bb437
 | |
| 
 | |
| bb437:		; preds = %bb419
 | |
| 	br label %bb739
 | |
| 
 | |
| bb438:		; preds = %bb419
 | |
| 	br label %bb478
 | |
| 
 | |
| bb443:		; preds = %bb478
 | |
| 	br label %bb469
 | |
| 
 | |
| bb449:		; preds = %bb469
 | |
| 	br i1 false, label %bb461, label %bb455
 | |
| 
 | |
| bb455:		; preds = %bb449
 | |
| 	br label %bb462
 | |
| 
 | |
| bb461:		; preds = %bb449
 | |
| 	br label %bb462
 | |
| 
 | |
| bb462:		; preds = %bb461, %bb455
 | |
| 	br label %bb469
 | |
| 
 | |
| bb469:		; preds = %bb462, %bb443
 | |
| 	br i1 false, label %bb449, label %bb475
 | |
| 
 | |
| bb475:		; preds = %bb469
 | |
| 	br label %bb478
 | |
| 
 | |
| bb478:		; preds = %bb475, %bb438
 | |
| 	br i1 false, label %bb443, label %bb484
 | |
| 
 | |
| bb484:		; preds = %bb478
 | |
| 	br label %bb651
 | |
| 
 | |
| bb485:		; preds = %bb30
 | |
| 	br i1 false, label %bb504, label %bb503
 | |
| 
 | |
| bb503:		; preds = %bb485
 | |
| 	br label %bb739
 | |
| 
 | |
| bb504:		; preds = %bb485
 | |
| 	br label %bb560
 | |
| 
 | |
| bb513:		; preds = %bb560
 | |
| 	br label %bb551
 | |
| 
 | |
| bb519:		; preds = %bb551
 | |
| 	br i1 false, label %bb528, label %bb532
 | |
| 
 | |
| bb528:		; preds = %bb519
 | |
| 	br label %bb536
 | |
| 
 | |
| bb532:		; preds = %bb519
 | |
| 	br label %bb536
 | |
| 
 | |
| bb536:		; preds = %bb532, %bb528
 | |
| 	br label %bb551
 | |
| 
 | |
| bb551:		; preds = %bb536, %bb513
 | |
| 	br i1 false, label %bb519, label %bb557
 | |
| 
 | |
| bb557:		; preds = %bb551
 | |
| 	br label %bb560
 | |
| 
 | |
| bb560:		; preds = %bb557, %bb504
 | |
| 	br i1 false, label %bb513, label %bb566
 | |
| 
 | |
| bb566:		; preds = %bb560
 | |
| 	br label %bb651
 | |
| 
 | |
| bb567:		; preds = %bb30
 | |
| 	br i1 false, label %bb586, label %bb585
 | |
| 
 | |
| bb585:		; preds = %bb567
 | |
| 	br label %bb739
 | |
| 
 | |
| bb586:		; preds = %bb567
 | |
| 	br label %bb641
 | |
| 
 | |
| bb595:		; preds = %bb641
 | |
| 	br label %bb632
 | |
| 
 | |
| bb601:		; preds = %bb632
 | |
| 	%tmp604 = icmp sgt i32 %i.7, 0		; <i1> [#uses=1]
 | |
| 	br i1 %tmp604, label %bb607, label %bb611
 | |
| 
 | |
| bb607:		; preds = %bb601
 | |
| 	br label %bb615
 | |
| 
 | |
| bb611:		; preds = %bb601
 | |
| 	br label %bb615
 | |
| 
 | |
| bb615:		; preds = %bb611, %bb607
 | |
| 	%tmp629 = add i32 %i.7, 1		; <i32> [#uses=1]
 | |
| 	%tmp631 = getelementptr float* %col.7, i32 1		; <float*> [#uses=1]
 | |
| 	br label %bb632
 | |
| 
 | |
| bb632:		; preds = %bb615, %bb595
 | |
| 	%col.7 = phi float* [ null, %bb595 ], [ %tmp631, %bb615 ]		; <float*> [#uses=1]
 | |
| 	%i.7 = phi i32 [ 0, %bb595 ], [ %tmp629, %bb615 ]		; <i32> [#uses=3]
 | |
| 	%tmp635 = icmp slt i32 %i.7, 0		; <i1> [#uses=1]
 | |
| 	br i1 %tmp635, label %bb601, label %bb638
 | |
| 
 | |
| bb638:		; preds = %bb632
 | |
| 	br label %bb641
 | |
| 
 | |
| bb641:		; preds = %bb638, %bb586
 | |
| 	br i1 false, label %bb595, label %bb647
 | |
| 
 | |
| bb647:		; preds = %bb641
 | |
| 	br label %bb651
 | |
| 
 | |
| bb648:		; preds = %bb30
 | |
| 	br label %bb739
 | |
| 
 | |
| bb651:		; preds = %bb647, %bb566, %bb484, %bb418, %bb352, %bb291, %bb233, %bb140, %bb107
 | |
| 	br i1 false, label %bb658, label %bb651.bb661_crit_edge
 | |
| 
 | |
| bb651.bb661_crit_edge:		; preds = %bb651
 | |
| 	br label %bb661
 | |
| 
 | |
| bb658:		; preds = %bb651
 | |
| 	br label %bb661
 | |
| 
 | |
| bb661:		; preds = %bb658, %bb651.bb661_crit_edge
 | |
| 	br i1 false, label %bb666, label %bb661.bb686_crit_edge
 | |
| 
 | |
| bb661.bb686_crit_edge:		; preds = %bb661
 | |
| 	br label %bb686
 | |
| 
 | |
| bb666:		; preds = %bb661
 | |
| 	br label %bb680
 | |
| 
 | |
| bb670:		; preds = %bb680
 | |
| 	br label %bb680
 | |
| 
 | |
| bb680:		; preds = %bb670, %bb666
 | |
| 	br i1 false, label %bb670, label %bb680.bb686_crit_edge
 | |
| 
 | |
| bb680.bb686_crit_edge:		; preds = %bb680
 | |
| 	br label %bb686
 | |
| 
 | |
| bb686:		; preds = %bb680.bb686_crit_edge, %bb661.bb686_crit_edge
 | |
| 	br i1 false, label %bb699, label %bb696
 | |
| 
 | |
| bb696:		; preds = %bb686
 | |
| 	br label %bb739
 | |
| 
 | |
| bb699:		; preds = %bb686
 | |
| 	br i1 false, label %bb712, label %bb709
 | |
| 
 | |
| bb709:		; preds = %bb699
 | |
| 	br label %bb739
 | |
| 
 | |
| bb712:		; preds = %bb699
 | |
| 	br i1 false, label %bb717, label %bb712.bb720_crit_edge
 | |
| 
 | |
| bb712.bb720_crit_edge:		; preds = %bb712
 | |
| 	br label %bb720
 | |
| 
 | |
| bb717:		; preds = %bb712
 | |
| 	br label %bb720
 | |
| 
 | |
| bb720:		; preds = %bb717, %bb712.bb720_crit_edge
 | |
| 	br i1 false, label %bb725, label %bb720.bb738_crit_edge
 | |
| 
 | |
| bb720.bb738_crit_edge:		; preds = %bb720
 | |
| 	br label %bb738
 | |
| 
 | |
| bb725:		; preds = %bb720
 | |
| 	br label %bb738
 | |
| 
 | |
| bb738:		; preds = %bb725, %bb720.bb738_crit_edge
 | |
| 	br label %bb739
 | |
| 
 | |
| bb739:		; preds = %bb738, %bb709, %bb696, %bb648, %bb585, %bb503, %bb437, %bb371, %bb310, %bb252, %bb160, %bb124, %bb52
 | |
| 	br label %return
 | |
| 
 | |
| return:		; preds = %bb739
 | |
| 	ret i32 0
 | |
| }
 |