brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.5 KiB · dafe40e Raw
351 lines · plain
1; RUN: llc  -mtriple=mipsel-elf -mattr=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=162 3@t = global i32 10, align 44@f = global i32 199, align 45@a = global i32 1, align 46@b = global i32 10, align 47@c = global i32 1, align 48@z1 = common global i32 0, align 49@z2 = common global i32 0, align 410@z3 = common global i32 0, align 411@z4 = common global i32 0, align 412 13define void @calc_seleq() nounwind {14entry:15  %0 = load i32, ptr @a, align 416  %1 = load i32, ptr @b, align 417  %cmp = icmp eq i32 %0, %118  %2 = load i32, ptr @f, align 419  %3 = load i32, ptr @t, align 420  %cond = select i1 %cmp, i32 %2, i32 %321  store i32 %cond, ptr @z1, align 422; 16:	cmp	${{[0-9]+}}, ${{[0-9]+}}23; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}24; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}25  store i32 %cond, ptr @z2, align 426  %4 = load i32, ptr @c, align 427  %cmp6 = icmp eq i32 %4, %028  %cond10 = select i1 %cmp6, i32 %3, i32 %229  store i32 %cond10, ptr @z3, align 430  store i32 %cond10, ptr @z4, align 431  ret void32}33 34 35define void @calc_seleqk() nounwind {36entry:37  %0 = load i32, ptr @a, align 438  %cmp = icmp eq i32 %0, 139  %1 = load i32, ptr @t, align 440  %2 = load i32, ptr @f, align 441  %cond = select i1 %cmp, i32 %1, i32 %242  store i32 %cond, ptr @z1, align 443; 16:	cmpi	${{[0-9]+}}, 144; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}45; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}46  %cmp1 = icmp eq i32 %0, 1047  %cond5 = select i1 %cmp1, i32 %2, i32 %148  store i32 %cond5, ptr @z2, align 449  %3 = load i32, ptr @b, align 450  %cmp6 = icmp eq i32 %3, 351  %cond10 = select i1 %cmp6, i32 %2, i32 %152  store i32 %cond10, ptr @z3, align 453; 16:	cmpi	${{[0-9]+}}, 1054; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}55; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}56  %cmp11 = icmp eq i32 %3, 1057  %cond15 = select i1 %cmp11, i32 %1, i32 %258  store i32 %cond15, ptr @z4, align 459  ret void60}61 62define void @calc_seleqz() nounwind {63entry:64  %0 = load i32, ptr @a, align 465  %cmp = icmp eq i32 %0, 066  %1 = load i32, ptr @t, align 467  %2 = load i32, ptr @f, align 468  %cond = select i1 %cmp, i32 %1, i32 %269  store i32 %cond, ptr @z1, align 470; 16:	beqz	${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}}71; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}72  %3 = load i32, ptr @b, align 473  %cmp1 = icmp eq i32 %3, 074  %cond5 = select i1 %cmp1, i32 %2, i32 %175  store i32 %cond5, ptr @z2, align 476  %4 = load i32, ptr @c, align 477  %cmp6 = icmp eq i32 %4, 078  %cond10 = select i1 %cmp6, i32 %1, i32 %279  store i32 %cond10, ptr @z3, align 480  store i32 %cond, ptr @z4, align 481  ret void82}83 84define void @calc_selge() nounwind {85entry:86  %0 = load i32, ptr @a, align 487  %1 = load i32, ptr @b, align 488  %cmp = icmp sge i32 %0, %189  %2 = load i32, ptr @f, align 490  %3 = load i32, ptr @t, align 491  %cond = select i1 %cmp, i32 %2, i32 %392  store i32 %cond, ptr @z1, align 493; 16:	slt	${{[0-9]+}}, ${{[0-9]+}}94; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}95; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}96  %cmp1 = icmp sge i32 %1, %097  %cond5 = select i1 %cmp1, i32 %3, i32 %298  store i32 %cond5, ptr @z2, align 499  %4 = load i32, ptr @c, align 4100  %cmp6 = icmp sge i32 %4, %0101  %cond10 = select i1 %cmp6, i32 %3, i32 %2102  store i32 %cond10, ptr @z3, align 4103  %cmp11 = icmp sge i32 %0, %4104  %cond15 = select i1 %cmp11, i32 %3, i32 %2105  store i32 %cond15, ptr @z4, align 4106  ret void107}108 109define i32 @calc_selgt() nounwind {110entry:111  %0 = load i32, ptr @a, align 4112  %1 = load i32, ptr @b, align 4113  %cmp = icmp sgt i32 %0, %1114; 16:	slt	${{[0-9]+}}, ${{[0-9]+}}115; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}116; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}117  %2 = load i32, ptr @f, align 4118  %3 = load i32, ptr @t, align 4119  %cond = select i1 %cmp, i32 %2, i32 %3120  store i32 %cond, ptr @z1, align 4121  %cmp1 = icmp sgt i32 %1, %0122  %cond5 = select i1 %cmp1, i32 %3, i32 %2123  store i32 %cond5, ptr @z2, align 4124  %4 = load i32, ptr @c, align 4125  %cmp6 = icmp sgt i32 %4, %0126  %cond10 = select i1 %cmp6, i32 %2, i32 %3127  store i32 %cond10, ptr @z3, align 4128  %cmp11 = icmp sgt i32 %0, %4129  %cond15 = select i1 %cmp11, i32 %2, i32 %3130  store i32 %cond15, ptr @z4, align 4131  ret i32 undef132}133 134define void @calc_selle() nounwind {135entry:136  %0 = load i32, ptr @a, align 4137  %1 = load i32, ptr @b, align 4138  %cmp = icmp sle i32 %0, %1139  %2 = load i32, ptr @t, align 4140  %3 = load i32, ptr @f, align 4141  %cond = select i1 %cmp, i32 %2, i32 %3142  store i32 %cond, ptr @z1, align 4143; 16:	slt	${{[0-9]+}}, ${{[0-9]+}}144; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}145; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}146  %cmp1 = icmp sle i32 %1, %0147  %cond5 = select i1 %cmp1, i32 %3, i32 %2148  store i32 %cond5, ptr @z2, align 4149  %4 = load i32, ptr @c, align 4150  %cmp6 = icmp sle i32 %4, %0151  %cond10 = select i1 %cmp6, i32 %2, i32 %3152  store i32 %cond10, ptr @z3, align 4153  %cmp11 = icmp sle i32 %0, %4154  %cond15 = select i1 %cmp11, i32 %2, i32 %3155  store i32 %cond15, ptr @z4, align 4156  ret void157}158 159define void @calc_selltk() nounwind {160entry:161  %0 = load i32, ptr @a, align 4162  %cmp = icmp slt i32 %0, 10163  %1 = load i32, ptr @t, align 4164  %2 = load i32, ptr @f, align 4165  %cond = select i1 %cmp, i32 %1, i32 %2166  store i32 %cond, ptr @z1, align 4167; 16:	slti	${{[0-9]+}}, {{[0-9]+}}168; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}169; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}170  %3 = load i32, ptr @b, align 4171  %cmp1 = icmp slt i32 %3, 2172  %cond5 = select i1 %cmp1, i32 %2, i32 %1173  store i32 %cond5, ptr @z2, align 4174  %4 = load i32, ptr @c, align 4175  %cmp6 = icmp sgt i32 %4, 2176  %cond10 = select i1 %cmp6, i32 %2, i32 %1177  store i32 %cond10, ptr @z3, align 4178  %cmp11 = icmp sgt i32 %0, 2179  %cond15 = select i1 %cmp11, i32 %2, i32 %1180  store i32 %cond15, ptr @z4, align 4181  ret void182}183 184 185define void @calc_selne() nounwind {186entry:187  %0 = load i32, ptr @a, align 4188  %1 = load i32, ptr @b, align 4189  %cmp = icmp ne i32 %0, %1190  %2 = load i32, ptr @t, align 4191  %3 = load i32, ptr @f, align 4192  %cond = select i1 %cmp, i32 %2, i32 %3193  store i32 %cond, ptr @z1, align 4194; 16:	cmp	${{[0-9]+}}, ${{[0-9]+}}195; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}196; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}197  store i32 %cond, ptr @z2, align 4198  %4 = load i32, ptr @c, align 4199  %cmp6 = icmp ne i32 %4, %0200  %cond10 = select i1 %cmp6, i32 %3, i32 %2201  store i32 %cond10, ptr @z3, align 4202  store i32 %cond10, ptr @z4, align 4203  ret void204}205 206define void @calc_selnek() nounwind {207entry:208  %0 = load i32, ptr @a, align 4209  %cmp = icmp ne i32 %0, 1210  %1 = load i32, ptr @f, align 4211  %2 = load i32, ptr @t, align 4212  %cond = select i1 %cmp, i32 %1, i32 %2213  store i32 %cond, ptr @z1, align 4214; 16:	cmpi	${{[0-9]+}}, 1215; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}216; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}217  %cmp1 = icmp ne i32 %0, 10218  %cond5 = select i1 %cmp1, i32 %2, i32 %1219  store i32 %cond5, ptr @z2, align 4220  %3 = load i32, ptr @b, align 4221  %cmp6 = icmp ne i32 %3, 3222  %cond10 = select i1 %cmp6, i32 %2, i32 %1223  store i32 %cond10, ptr @z3, align 4224; 16:	cmpi	${{[0-9]+}}, 10225; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}226; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}227  %cmp11 = icmp ne i32 %3, 10228  %cond15 = select i1 %cmp11, i32 %1, i32 %2229  store i32 %cond15, ptr @z4, align 4230  ret void231}232 233define void @calc_selnez() nounwind {234entry:235  %0 = load i32, ptr @a, align 4236  %cmp = icmp ne i32 %0, 0237  %1 = load i32, ptr @f, align 4238  %2 = load i32, ptr @t, align 4239  %cond = select i1 %cmp, i32 %1, i32 %2240  store i32 %cond, ptr @z1, align 4241; 16:	bnez	${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}}242; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}243  %3 = load i32, ptr @b, align 4244  %cmp1 = icmp ne i32 %3, 0245  %cond5 = select i1 %cmp1, i32 %2, i32 %1246  store i32 %cond5, ptr @z2, align 4247  %4 = load i32, ptr @c, align 4248  %cmp6 = icmp ne i32 %4, 0249  %cond10 = select i1 %cmp6, i32 %1, i32 %2250  store i32 %cond10, ptr @z3, align 4251  store i32 %cond, ptr @z4, align 4252  ret void253}254 255define void @calc_selnez2() nounwind {256entry:257  %0 = load i32, ptr @a, align 4258  %tobool = icmp ne i32 %0, 0259  %1 = load i32, ptr @f, align 4260  %2 = load i32, ptr @t, align 4261  %cond = select i1 %tobool, i32 %1, i32 %2262  store i32 %cond, ptr @z1, align 4263; 16:	bnez	${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}}264; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}265  %3 = load i32, ptr @b, align 4266  %tobool1 = icmp ne i32 %3, 0267  %cond5 = select i1 %tobool1, i32 %2, i32 %1268  store i32 %cond5, ptr @z2, align 4269  %4 = load i32, ptr @c, align 4270  %tobool6 = icmp ne i32 %4, 0271  %cond10 = select i1 %tobool6, i32 %1, i32 %2272  store i32 %cond10, ptr @z3, align 4273  store i32 %cond, ptr @z4, align 4274  ret void275}276 277define void @calc_seluge() nounwind {278entry:279  %0 = load i32, ptr @a, align 4280  %1 = load i32, ptr @b, align 4281  %cmp = icmp uge i32 %0, %1282  %2 = load i32, ptr @f, align 4283  %3 = load i32, ptr @t, align 4284  %cond = select i1 %cmp, i32 %2, i32 %3285  store i32 %cond, ptr @z1, align 4286; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}287; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}288; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}289  %cmp1 = icmp uge i32 %1, %0290  %cond5 = select i1 %cmp1, i32 %3, i32 %2291  store i32 %cond5, ptr @z2, align 4292  %4 = load i32, ptr @c, align 4293  %cmp6 = icmp uge i32 %4, %0294  %cond10 = select i1 %cmp6, i32 %3, i32 %2295  store i32 %cond10, ptr @z3, align 4296  %cmp11 = icmp uge i32 %0, %4297  %cond15 = select i1 %cmp11, i32 %3, i32 %2298  store i32 %cond15, ptr @z4, align 4299  ret void300}301 302define void @calc_selugt() nounwind {303entry:304  %0 = load i32, ptr @a, align 4305  %1 = load i32, ptr @b, align 4306  %cmp = icmp ugt i32 %0, %1307  %2 = load i32, ptr @f, align 4308  %3 = load i32, ptr @t, align 4309  %cond = select i1 %cmp, i32 %2, i32 %3310  store i32 %cond, ptr @z1, align 4311; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}312; 16:	btnez	$BB{{[0-9]+}}_{{[0-9]}}313; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}314  %cmp1 = icmp ugt i32 %1, %0315  %cond5 = select i1 %cmp1, i32 %3, i32 %2316  store i32 %cond5, ptr @z2, align 4317  %4 = load i32, ptr @c, align 4318  %cmp6 = icmp ugt i32 %4, %0319  %cond10 = select i1 %cmp6, i32 %2, i32 %3320  store i32 %cond10, ptr @z3, align 4321  %cmp11 = icmp ugt i32 %0, %4322  %cond15 = select i1 %cmp11, i32 %2, i32 %3323  store i32 %cond15, ptr @z4, align 4324  ret void325}326 327define void @calc_selule() nounwind {328entry:329  %0 = load i32, ptr @a, align 4330  %1 = load i32, ptr @b, align 4331  %cmp = icmp ule i32 %0, %1332  %2 = load i32, ptr @t, align 4333  %3 = load i32, ptr @f, align 4334  %cond = select i1 %cmp, i32 %2, i32 %3335  store i32 %cond, ptr @z1, align 4336; 16:	sltu	${{[0-9]+}}, ${{[0-9]+}}337; 16:	bteqz	$BB{{[0-9]+}}_{{[0-9]}}338; 16: 	move    ${{[0-9]+}}, ${{[0-9]+}}339  %cmp1 = icmp ule i32 %1, %0340  %cond5 = select i1 %cmp1, i32 %3, i32 %2341  store i32 %cond5, ptr @z2, align 4342  %4 = load i32, ptr @c, align 4343  %cmp6 = icmp ule i32 %4, %0344  %cond10 = select i1 %cmp6, i32 %2, i32 %3345  store i32 %cond10, ptr @z3, align 4346  %cmp11 = icmp ule i32 %0, %4347  %cond15 = select i1 %cmp11, i32 %2, i32 %3348  store i32 %cond15, ptr @z4, align 4349  ret void350}351