brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · cb48a5d Raw
60 lines · plain
1; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s2 3declare ptr @foo()4 5define void @f1() {6entry:7  call ptr @foo(), !align !{i64 2}8  ret void9}10; CHECK: align applies only to load instructions11; CHECK-NEXT: call ptr @foo()12 13define i8 @f2(ptr %x) {14entry:15  %y = load i8, ptr %x, !align !{i64 2}16  ret i8 %y17}18; CHECK: align applies only to pointer types19; CHECK-NEXT: load i8, ptr %x20 21define ptr @f3(ptr %x) {22entry:23  %y = load ptr, ptr %x, !align !{}24  ret ptr %y25}26; CHECK: align takes one operand27; CHECK-NEXT: load ptr, ptr %x28 29define ptr @f4(ptr %x) {30entry:31  %y = load ptr, ptr %x, !align !{!"str"}32  ret ptr %y33}34; CHECK: align metadata value must be an i64!35; CHECK-NEXT: load ptr, ptr %x36 37define ptr @f5(ptr %x) {38entry:39  %y = load ptr, ptr %x, !align !{i32 2}40  ret ptr %y41}42; CHECK: align metadata value must be an i64!43; CHECK-NEXT: load ptr, ptr %x44 45define ptr @f6(ptr %x) {46entry:47  %y = load ptr, ptr %x, !align !{i64 3}48  ret ptr %y49}50; CHECK: align metadata value must be a power of 2!51; CHECK-NEXT: load ptr, ptr %x52 53define ptr @f7(ptr %x) {54entry:55  %y = load ptr, ptr %x, !align !{i64 8589934592}56  ret ptr %y57}58; CHECK: alignment is larger that implementation defined limit59; CHECK-NEXT: load ptr, ptr %x60