brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · dda9439 Raw
155 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=m68k < %s -o - | FileCheck %s3 4@g = internal global i32 10, align 45 6; This function is primarily testing constant constraints that can NOT7; be easily checked by Clang. For example, 'K' and 'M' are both8; constraints for values that are outside certain numerical range.9define void @constant_constraints() {10; CHECK-LABEL: constant_constraints:11; CHECK:         .cfi_startproc12; CHECK-NEXT:  ; %bb.0: ; %entry13; CHECK-NEXT:    ;APP14; CHECK-NEXT:    move.l #1, %d115; CHECK-NEXT:    ;NO_APP16; CHECK-NEXT:    ;APP17; CHECK-NEXT:    move.l #8, %d118; CHECK-NEXT:    ;NO_APP19; CHECK-NEXT:    ;APP20; CHECK-NEXT:    move.l #-32768, %d121; CHECK-NEXT:    ;NO_APP22; CHECK-NEXT:    ;APP23; CHECK-NEXT:    move.l #32767, %d124; CHECK-NEXT:    ;NO_APP25; CHECK-NEXT:    ;APP26; CHECK-NEXT:    move.l #-129, %d127; CHECK-NEXT:    ;NO_APP28; CHECK-NEXT:    ;APP29; CHECK-NEXT:    move.l #128, %d130; CHECK-NEXT:    ;NO_APP31; CHECK-NEXT:    ;APP32; CHECK-NEXT:    move.l #-8, %d133; CHECK-NEXT:    ;NO_APP34; CHECK-NEXT:    ;APP35; CHECK-NEXT:    move.l #-1, %d136; CHECK-NEXT:    ;NO_APP37; CHECK-NEXT:    ;APP38; CHECK-NEXT:    move.l #-257, %d139; CHECK-NEXT:    ;NO_APP40; CHECK-NEXT:    ;APP41; CHECK-NEXT:    move.l #256, %d142; CHECK-NEXT:    ;NO_APP43; CHECK-NEXT:    ;APP44; CHECK-NEXT:    move.l #24, %d145; CHECK-NEXT:    ;NO_APP46; CHECK-NEXT:    ;APP47; CHECK-NEXT:    move.l #31, %d148; CHECK-NEXT:    ;NO_APP49; CHECK-NEXT:    ;APP50; CHECK-NEXT:    move.l #16, %d151; CHECK-NEXT:    ;NO_APP52; CHECK-NEXT:    ;APP53; CHECK-NEXT:    move.l #8, %d154; CHECK-NEXT:    ;NO_APP55; CHECK-NEXT:    ;APP56; CHECK-NEXT:    move.l #15, %d157; CHECK-NEXT:    ;NO_APP58; CHECK-NEXT:    ;APP59; CHECK-NEXT:    move.l #0, %d160; CHECK-NEXT:    ;NO_APP61; CHECK-NEXT:    ;APP62; CHECK-NEXT:    move.l #1, %d163; CHECK-NEXT:    ;NO_APP64; CHECK-NEXT:    ;APP65; CHECK-NEXT:    move.l #-32769, %d166; CHECK-NEXT:    ;NO_APP67; CHECK-NEXT:    ;APP68; CHECK-NEXT:    move.l #32768, %d169; CHECK-NEXT:    ;NO_APP70; CHECK-NEXT:    rts71entry:72  call void asm sideeffect "move.l $0, %d1", "I"(i32 1)73  call void asm sideeffect "move.l $0, %d1", "I"(i32 8)74  call void asm sideeffect "move.l $0, %d1", "J"(i32 -32768)75  call void asm sideeffect "move.l $0, %d1", "J"(i32 32767)76  call void asm sideeffect "move.l $0, %d1", "K"(i32 -129)77  call void asm sideeffect "move.l $0, %d1", "K"(i32 128)78  call void asm sideeffect "move.l $0, %d1", "L"(i32 -8)79  call void asm sideeffect "move.l $0, %d1", "L"(i32 -1)80  call void asm sideeffect "move.l $0, %d1", "M"(i32 -257)81  call void asm sideeffect "move.l $0, %d1", "M"(i32 256)82  call void asm sideeffect "move.l $0, %d1", "N"(i32 24)83  call void asm sideeffect "move.l $0, %d1", "N"(i32 31)84  call void asm sideeffect "move.l $0, %d1", "O"(i32 16)85  call void asm sideeffect "move.l $0, %d1", "P"(i32 8)86  call void asm sideeffect "move.l $0, %d1", "P"(i32 15)87  call void asm sideeffect "move.l $0, %d1", "^C0"(i32 0)88  call void asm sideeffect "move.l $0, %d1", "^Ci"(i32 1)89  call void asm sideeffect "move.l $0, %d1", "^Cj"(i32 -32769)90  call void asm sideeffect "move.l $0, %d1", "^Cj"(i32 32768)91  ret void92}93 94define void @register_constraints() {95; CHECK-LABEL: register_constraints:96; CHECK:         .cfi_startproc97; CHECK-NEXT:  ; %bb.0: ; %entry98; CHECK-NEXT:    suba.l #4, %sp99; CHECK-NEXT:    .cfi_def_cfa_offset -8100; CHECK-NEXT:    ;APP101; CHECK-NEXT:    move.l #94, %d0102; CHECK-NEXT:    ;NO_APP103; CHECK-NEXT:    move.l %d0, (0,%sp)104; CHECK-NEXT:    ;APP105; CHECK-NEXT:    move.l #87, %d0106; CHECK-NEXT:    ;NO_APP107; CHECK-NEXT:    move.l %d0, (0,%sp)108; CHECK-NEXT:    ;APP109; CHECK-NEXT:    move.l #66, %a0110; CHECK-NEXT:    ;NO_APP111; CHECK-NEXT:    move.l %a0, (0,%sp)112; CHECK-NEXT:    adda.l #4, %sp113; CHECK-NEXT:    rts114entry:115  %out = alloca i32, align 4116  %0 = call i32 asm sideeffect "move.l #94, $0", "=r"()117  store i32 %0, ptr %out, align 4118  %1 = call i32 asm sideeffect "move.l #87, $0", "=d"()119  store i32 %1, ptr %out, align 4120  %2 = call i32 asm sideeffect "move.l #66, $0", "=a"()121  store i32 %2, ptr %out, align 4122  ret void123}124 125define void @memory_constraints() {126; CHECK-LABEL: memory_constraints:127; CHECK:         .cfi_startproc128; CHECK-NEXT:  ; %bb.0: ; %entry129; CHECK-NEXT:    suba.l #4, %sp130; CHECK-NEXT:    .cfi_def_cfa_offset -8131; CHECK-NEXT:    ;APP132; CHECK-NEXT:    move.l (0,%sp), %d1133; CHECK-NEXT:    ;NO_APP134; CHECK-NEXT:    ;APP135; CHECK-NEXT:    move.l (g,%pc), %d2136; CHECK-NEXT:    ;NO_APP137; CHECK-NEXT:    lea (0,%sp), %a0138; CHECK-NEXT:    ;APP139; CHECK-NEXT:    move.l (%a0), %d3140; CHECK-NEXT:    ;NO_APP141; CHECK-NEXT:    ;APP142; CHECK-NEXT:    move.l (0,%sp), %d4143; CHECK-NEXT:    ;NO_APP144; CHECK-NEXT:    adda.l #4, %sp145; CHECK-NEXT:    rts146entry:147  %x = alloca i32, align 4148  call void asm sideeffect "move.l $0, %d1", "*m"(ptr elementtype(i32) %x)149  call void asm sideeffect "move.l $0, %d2", "*m"(ptr elementtype(i32) @g)150  call void asm sideeffect "move.l $0, %d3", "*Q"(ptr elementtype(i32) %x)151  call void asm sideeffect "move.l $0, %d4", "*U"(ptr elementtype(i32) %x)152  ret void153}154 155