1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; RUN: llc -march=hexagon --filetype=obj < %s -o - | llvm-objdump -d - | FileCheck %s 2f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 3f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 4f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpeq(i32 %i) #0 { 5f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 6f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 7f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 8f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 9f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpeq(i32 %0, i32 1) 10f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 11f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 12f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.eq(r{{[0-9]}}, r{{[0-9]}}) 13f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 14f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 15f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpeq(i32, i32) #1 16f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 17f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 18f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgt(i32 %i) #0 { 19f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 20f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 21f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 22f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 23f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgt(i32 %0, i32 2) 24f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 25f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 26f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gt(r{{[0-9]}}, r{{[0-9]}}) 27f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 28f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 29f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgt(i32, i32) #1 30f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 31f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 32f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgtu(i32 %i) #0 { 33f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 34f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 35f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 36f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 37f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgtu(i32 %0, i32 3) 38f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 39f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 40f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gtu(r{{[0-9]}}, r{{[0-9]}}) 41f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 42f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 43f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgtu(i32, i32) #1 44f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 45f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 46f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmplt(i32 %i) #0 { 47f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 48f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 49f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 50f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 51f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmplt(i32 %0, i32 4) 52f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 53f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 54f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gt(r{{[0-9]}}, r{{[0-9]}}) 55f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 56f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 57f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmplt(i32, i32) #1 58f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 59f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 60f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpltu(i32 %i) #0 { 61f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 62f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 63f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 64f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 65f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpltu(i32 %0, i32 5) 66f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 67f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 68f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gtu(r{{[0-9]}}, r{{[0-9]}}) 69f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 70f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 71f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpltu(i32, i32) #1 72f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 73f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 74f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpeqi(i32 %i) #0 { 75f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 76f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 77f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 78f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 79f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpeqi(i32 %0, i32 10) 80f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 81f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 82f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.eq(r{{[0-9]}}, {{.*}}#10) 83f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 84f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 85f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpeqi(i32, i32) #1 86f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 87f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 88f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgti(i32 %i) #0 { 89f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 90f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 91f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 92f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 93f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgti(i32 %0, i32 20) 94f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 95f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 96f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gt(r{{[0-9]}}, {{.*}}#20) 97f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 98f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 99f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgti(i32, i32) #1 100f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 101f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 102f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgtui(i32 %i) #0 { 103f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 104f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 105f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 106f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 107f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgtui(i32 %0, i32 40) 108f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 109f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 110f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gtu(r{{[0-9]}}, {{.*}}#40) 111f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 112f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 113f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgtui(i32, i32) #1 114f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 115f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 116f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgei(i32 %i) #0 { 117f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 118f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 119f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 120f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 121f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgei(i32 %0, i32 3) 122f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 123f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 124f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gt(r{{[0-9]}}, {{.*}}#2) 125f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 126f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 127f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgei(i32, i32) #1 128f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 129f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 130f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgeu(i32 %i) #0 { 131f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 132f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 133f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 134f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 135f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgeui(i32 %0, i32 3) 136f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 137f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 138f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.gtu(r{{[0-9]}}, {{.*}}#2) 139f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 140f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind readnone 141f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardeclare i32 @llvm.hexagon.C2.cmpgeui(i32, i32) #1 142f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 143f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; Function Attrs: nounwind 144f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainardefine i32 @cmpgeu0(i32 %i) #0 { 145f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarentry: 146f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %i.addr = alloca i32, align 4 147f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar store i32 %i, i32* %i.addr, align 4 148f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %0 = load i32, i32* %i.addr, align 4 149f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar %1 = call i32 @llvm.hexagon.C2.cmpgeui(i32 %0, i32 0) 150f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ret i32 %1 151f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 152f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar; CHECK: { p{{[0-3]}} = cmp.eq(r{{[0-9]}}, r{{[0-9]}}) 153f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 154f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 155f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarattributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 156f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarattributes #1 = { nounwind readnone } 157f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 158f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar!llvm.ident = !{!0} 159f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 160f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar!0 = !{!"Clang 3.1"} 161f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 162